Проверка PHP PHP - PullRequest
       38

Проверка PHP PHP

2 голосов
/ 14 апреля 2010

Каков наилучший способ проверки файла XML (или его части) по нескольким файлам XSD?

Например, у меня есть следующая схема для загрузчика конфигурации:

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

Поскольку класс Configuration существует в настоящее время, он позволяет добавить тег <section> с определенным конкретным классом анализатора (во многом аналогично пользовательским разделам конфигурации в ASP.NET). Тем не менее, я не уверен, как проверить анализируемый раздел.

Можно ли проверить только этот раздел кода с помощью файла / строки XSD, не записывая его обратно в файл?

Ответы [ 2 ]

0 голосов
/ 07 мая 2010

Я решал ту же проблему, и я просто слил файлы (это было возможно в моем случае, поскольку это было действительно просто).

Ссылка: Можно ли проверить XML по нескольким схемам в PHP?

0 голосов
/ 14 апреля 2010

Вместо того, чтобы думать об этом как об одном большом XML-файле, думайте об этом с точки зрения кусков. Пользовательские разделы XML не являются частью схемы вашего основного файла, это просто данные. Попытка проверки с помощью этого XSD-файла, затем при загрузке пользовательского раздела проверьте этот XML-файл с другим XSD-файлом.

...