xmerl_xsd
xmerl_xsd
模块
xmerl_xsd
模块摘要
XML模式的接口模块。
描述
XML模式的接口模块。它处理w3.orgspecifications
XMLSchema的第二版,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
。