Проверка PHP PHP
Каков наилучший способ проверки файла 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 ответа
Вместо того, чтобы думать об этом как об одном большом XML-файле, думайте об этом с точки зрения кусков. Пользовательские разделы XML не являются частью схемы вашего основного файла, это просто данные. Попытка проверки с помощью этого XSD-файла, затем при загрузке пользовательского раздела проверьте этот XML-файл с другим XSD-файлом.
Я решал ту же проблему и просто слил файлы (это было возможно в моем случае, поскольку это было действительно просто).
Ссылка: возможно ли проверить XML по нескольким схемам в PHP?