PHP XML验证
问题描述:
针对多个XSD文件验证XML文件(或其一部分)的最佳方式是什么?PHP XML验证
例如,我有一个配置加载下面的模式:
<xsd:schema xmlns="http://www.kauriproject.org/schema/configuration"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.kauriproject.org/schema/configuration"
elementFormDefault="qualified">
<xsd:element name="configuration" type="configuration" />
<xsd:complexType name="configuration">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="import" type="import" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="section" type="section" />
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="section">
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:complexType>
<xsd:complexType name="import" mixed="true">
<xsd:attribute name="resource" type="xsd:string" />
</xsd:complexType>
</xsd:schema>
由于配置类现在存在的,它让一个加<section>
标签与定义具体的语法分析类(很像定制ASP.NET中的配置部分)。但是,我不确定如何验证正在分析的部分。
如果可以使用XSD文件/字符串验证这段代码而不写回文件?
答
不要将它看作一个大的XML文件,而应该将它看作块。自定义XML部分不是您的主文件架构的一部分,它只是其数据。尝试使用此XSD文件进行验证,然后在加载自定义节时使用另一个XSD文件验证XML。
答
我正在解决同样的问题,我只是简单地合并文件(这可能在我的情况下,因为它是一个非常简单的)。
链接:Is it possible to validate XML against multiple schemas in PHP?
你解决这个问题? – 2010-05-07 07:41:53