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
关于定制功能。