PHP XML验证

PHP XML验证,php,xml,xsd,multiple-schema,Php,Xml,Xsd,Multiple Schema,根据多个XSD文件验证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" elem

根据多个XSD文件验证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>

由于配置类现在已经存在,它允许添加一个带有define-concrete解析器类的
标记(很像ASP.NET中的自定义配置部分)。但是,我不确定如何验证正在解析的部分


是否可以只使用XSD文件/字符串验证这段代码,而不将其写回文件

不要将其视为一个大型XML文件,而应将其视为块。自定义XML部分不是主文件模式的一部分,只是数据。尝试使用此XSD文件进行验证,然后在加载自定义部分时,使用另一个XSD文件验证该XML。

不要将其视为一个大型XML文件,而是将其视为块。自定义XML部分不是主文件模式的一部分,只是数据。尝试使用此XSD文件进行验证,然后在加载自定义部分时,使用另一个XSD文件验证该XML。

我解决了同样的问题,只是简单地合并了这些文件(在我的示例中,这是可能的,因为它非常简单)


链接:

我正在解决同样的问题,我只是简单地合并了文件(在我的情况下这是可能的,因为这是一个非常简单的问题)

链接: