Descubrí cómo validar un archivo XML usando un esquema XSD en PHP usando este código, pero parece que el procesamiento se realiza usando la versión 1.0 de XSD.
$dom = new DOMDocument(); $dom->loadXML($xmlString); $isValid = $dom->schemaValidate($xsdFile);Para mi caso, necesito que el archivo XSD sea tratado como la versión 1.1. La razón principal de esto es que quiero usar:
<xs:all> <xs:element type="xs:string" name="br" minOccurs="0" maxOccurs="unbounded"/> <xs:element type="linkType" name="link" minOccurs="0" maxOccurs="unbounded"/> </xs:all> Observe maxOccurs="unbounded" que solo se puede usar dentro de <xs:all> con la versión 1.1. En la versión 1.0, maxOccurs solo puede ser 0 o 1.
PHP falla con el error genérico:
Warning: DOMDocument::schemaValidate(): Invalid SchemaDOMDocument::schemaValidate utiliza Libxml. Libxml no es compatible con XSD 1.1.