在线文档教程

xmerl_scan

[医]xmerl[医]扫描

模块

[医]xmerl[医]扫描

模块摘要

该模块是与XML解析器的接口,它处理XML 1.0。

描述

该模块是与XML解析器的接口,它处理XML 1.0。xml解析器通过xmerl_scan:string/[1,2]xmerl_scan:file/[1,2].它返回xmerl.hrl中定义的类型的记录。另见tutorial关于定制功能。

数据类型

document()= |xmlElement() xmlDocument()

xmerl_scan:string/[1,2]xmerl_scan:file/[1,2]返回记录的类型取决于传递给函数的Document选项的值。

global_state()

扫描仪的全局状态,由#xmerl表示。[医]扫描仪{}记录

期权[医]表%28%29

选项允许自定义扫描仪的行为。另见tutorial关于定制功能。

可能的备选办法是:

{acc_fun, Fun}

回调函数来积累实体的内容。

{continuation_fun, Fun} | {continuation_fun, Fun, ContinuationState}

回调函数,以决定如果扫描仪在文档完成之前运行到EOF中,应该做什么。

{event_fun, Fun} | {event_fun, Fun, EventState}

回调函数来处理扫描器事件。

{fetch_fun, Fun} | {fetch_fun, Fun, FetchState}

回调函数来获取外部资源。

{hook_fun, Fun} | {hook_fun, Fun, HookState}

回调函数来处理文档实体。

{close_fun, Fun}

当文档被完全解析时调用。

{rules, ReadFun, WriteFun, RulesState} | {rules, Rules}

解析时处理扫描程序信息的存储。

{user_state, UserState}

可从所有自定义函数访问全局状态变量

{fetch_path, PathList}

PathList是在获取文件时要搜索的目录列表。如果所讨论的文件不在获取中[医]路径时,URI将用作文件名。

{space, Flag}

'保留'(默认)保留空格,'标准化'累积连续的空格并用一个空格替换。

{line, Line}

若要指定包含XML片段的文档中的扫描起始行,请执行以下操作。

{namespace_conformant, Flag}

控制是否以符合命名空间的xml解析器的形式运行,%27false%27%28默认%29而不是其他的%27true%27。

{validation, Flag}

控制是否以验证xml解析器的形式处理:%27off%27%28默认%29无验证,或由DTD验证%27 dtd%27或按XMLSchema验证%27架构%27。%27假%27和%27真%27选项过时%28i.e。如果使用%27false%27等于%27off%27和%27true%27等于%27 dtd%27,则可能在将来的版本%29中删除它们。

{schemaLocation, [{Namespace,Link}|...]}

显式地告诉要使用哪些XML架构文档来验证XML文档。与{validation,schema}选择。

{quiet, Flag}

如果xmerl应该安静地运行,并且不将任何信息输出到标准输出%28默认%27false%27%29,则设置为%27true%27。

{doctype_DTD, DTD}

允许在XML文档中%27T可用时指定DTD名称。此选项仅与{validation,'dtd'选择。

{xmlbase, Dir}

XMLBase目录。如果使用字符串/1,则默认值为当前目录。如果使用file/1,默认为给定文件的目录。

{encoding, Enc}

设置默认字符集使用%28默认UTF-8%29。只有当XML声明没有显式地给出此字符集时,才使用此字符集。

{document, Flag}

如果xmerl应该将完整的XML文档作为xmlDocument记录返回(默认为“false”),则设置为'true'。

{comments, Flag}

如果xmerl应该跳过注释,则设置为'false',否则它们将作为xmlComment记录返回(默认为'true')。

{default_attrs, Flag}

如果xmerl应该添加到缺少具有定义的默认值的属性的元素(默认值为“false”),则设置为'true'。

xmlDocument()= #xmlDocument {}

记录定义在xmerl.hrl中找到。

xmlElement()= #xmlElement {}

记录定义在xmerl.hrl中找到。

出口

accumulate_whitespace(T::string(), S::global_state(), X3::atom(), Acc::string()) -> {Acc, T1, S1}

函数来积累和规范空白。

cont_state(S::global_state()) ->global_state()

相当于cont_state(ContinuationState, S)...

cont_state(X::ContinuationState, S::global_state()) ->global_state()

用于控制连续状态,用于连续函数中,并在解析器遇到字节流结束时调用。见tutorial关于定制功能。

event_state(S::global_state()) ->global_state()

相当于event_state(EventState, S)...

event_state(X::EventState, S::global_state()) ->global_state()

用于控制事件状态,用于事件函数中,并在被解析实体的开头和结尾调用。见tutorial关于定制功能。

fetch_state(S::global_state()) ->global_state()

相当于fetch_state(FetchState, S)...

fetch_state(X::FetchState, S::global_state()) ->global_state()

用于控制FetchState,用于获取函数,并在解析器获取外部资源%28G时调用。a DTD%29。见tutorial关于定制功能。

file(Filename::string()) -> {xmlElement(), Rest}

类型

相当于file(Filename, [])...

file(Filename::string(), Options::option_list()) -> {document(), Rest}

类型

包含XML文档的解析文件

hook_state(S::global_state()) ->global_state()

相当于hook_state(HookState, S)...

hook_state(X::HookState, S::global_state()) ->global_state()

用于控制HookState,用于钩子函数,并在解析器解析完完整实体时调用。见tutorial关于定制功能。

rules_state(S::global_state()) ->global_state()

相当于rules_state(RulesState, S)...

rules_state(X::RulesState, S::global_state()) ->global_state()

用于控制RulesState,用于规则函数中,并在解析器将扫描程序信息存储在规则数据库中时调用。见tutorial关于定制功能。

string(Text::list()) -> {xmlElement(), Rest}

类型

相当于string(Test, [])...

string(Text::list(), Options::option_list()) -> {document(), Rest}

类型

解析包含XML文档的字符串

user_state(S::global_state()) ->global_state()

相当于user_state(UserState, S)...

user_state(X::UserState, S::global_state()) ->global_state()

用于控制UserState,用于用户函数中。见tutorial关于定制功能。