xmerl_xsd

xmerl_xsd

模块

xmerl_xsd

模块摘要

XML模式的接口模块。

描述

XML模式的接口模块。它处理w3.orgspecificationsXMLSchema的第二版,2004年10月28日。关于XMLSchema研究的介绍part 0.xmerl验证了xml结构。[医]xsd:验证/2,3。

数据类型

filename()= string()global_state()

验证器的全局状态。它由#xsd_state{}录下来。

option_list()

选项允许自定义验证的行为。

可能的备选办法是:

{tab2file,boolean()}

允许将抽象结构保存在文件中,以便进行调试。

{xsdbase,filename()}

XSDBase目录

{fetch_fun,FetchFun}

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

{fetch_path,PathList}

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

{state,State}

此选项可以为状态提供来自早期验证的进程信息。

出口

file2state(FileName) -> {ok, State} | {error, Reason}

类型

从创建的文件中读取包含已处理架构的所有信息的架构状态。state2file/[1,2]该文件的格式是内部的。然后,可以使用状态验证XML文档。

format_error(L::Errors) -> Result

类型

将错误描述格式化为人类可读字符串。

process_schema(Schema) -> Result

相当于process_schema(Schema, [])

process_schema(Schema, Options) -> Result

类型

读取引用的XML架构并检查它是否有效。返回global_state()带有架构信息或错误原因。错误原因可能是处理过程中遇到的多个错误或单个错误的列表。

process_schemas(Schemas) -> Result

相当于process_schema(Schemas, [])

process_schemas(Schemas, Options) -> Result

类型

读取引用的XML架构和控件,它们是有效的。返回global_state()带有架构信息或错误原因。错误原因可能是处理过程中遇到的多个错误或单个错误的列表。

process_validate(Schema, Xml::Element) -> Result

相当于process_validate(Schema, Xml, [])

process_validate(Schema, Xml::Element, Opts::Options) -> Result

类型

对XML架构验证解析的格式良好的XML元素。

分两步验证。它首先处理模式,将类型和结构信息保存在ETS表中,然后根据模式验证元素。

用法示例:

1>{E,_} = xmerl_scan:file("my_XML_document.xml").

2>{E2,_} = xmerl_xsd:validate("my_XML_Schema.xsd",E).

如果例如在中定义了默认值,则观察到E2可能与E不同my_XML_Schema.xsd

state2file(S::State) -> ok | {error, Reason}

与state2file相同(State,SchemaName)

保存的文件名与架构名称相同,但使用.xss分机。

state2file(S::State, FileName) -> ok | {error, Reason}

类型

保存架构状态,并将处理过的架构的所有信息保存在文件中。您可以提供保存状态的文件名。文件名保存在.xss扩展添加。

validate(Xml::Element, State) -> Result

相当于validate(Element, State, [])

validate(Xml::Element, State, Opts::Options) -> Result

类型

验证经过分析的格式正确的XML元素(Element)。

要验证/2或验证/3的调用必须提供格式良好的解析XML元素#xmlElement{}一个国家,global_state(),它保存来自已处理架构的必要信息。因此,验证支持模式信息的重用,因此,如果要针对同一模式进行多次验证,则会减少时间消耗。

结果ValidElement是符合模式后验证信息集的有效元素。当验证器发现错误时,它将尝试继续,并报告发现的所有错误的列表。在这些情况下,会发现一个意外错误,它可能导致单个错误原因。

用法示例:

1>{E,_} = xmerl_scan:file("my_XML_document.xml").

2>{ok,S} = xmerl_xsd:process_schema("my_XML_Schema.xsd").

3>{E2,_} = xmerl_xsd:validate(E,S).

如果例如在中定义了默认值,则观察到E2可能与E不同my_XML_Schema.xsd