PHP XML Doğrulama

2 Cevap php

Birden XSD dosyaları karşı bir XML dosyası (veya bir kısmını) doğrulamak için en iyi yolu nedir?

Örneğin, ben bir yapılandırma yükleyici için aşağıdaki şema var:

<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>

Yapılandırma sınıfı şimdi var gibi, bir (çok ASP.NET özel yapılandırma bölümleri gibi) tanımlamak somut ayrıştırıcı sınıfı ile bir <section> etiketi eklemenizi sağlar. Ancak, ayrıştırıldı bölümü doğrulamak için nasıl emin değilim.

Mümkün bir dosyaya geri yazmadan bir XSD dosyası / dize ile kod sadece bu bölümü doğrulamak için ise?

2 Cevap

Bunun yerine büyük bir XML dosyası olarak bunu düşünme, parçalar açısından düşünmek. Özel XML bölümleri ana dosyanın şemasının bir parçası, onun sadece veri değil. Eğer özel bir bölüm, başka bir XSD dosyası ile bu XML doğrulamak yüklediğinizde sonra, bu XSD dosyası ile doğrulama çalışıyor.

Ben aynı sorunu çözme ve ben sadece (bu gerçekten basit biri olarak benim durumumda mümkün oldu) dosyaları birleşti.

Link: http://stackoverflow.com/questions/2746008/is-it-possible-to-validate-xml-against-multiple-schemas-in-php