Как вы можете применить XSD?
Я только начал переключать свой старый DTD на XSD, когда узнал об этом, и мне интересно, как я могу применить XSD к своим XML-файлам? Я видел валидатор W3C для этого, но я хотел бы, чтобы был способ заставить программу не запускаться в браузере, если была обнаружена ошибка XSD. Возможно ли это?
2 answers
Применение правил XSD не может быть выполнено непосредственно в XML, так как это текстовый формат файла и не имеет внутренней логики или способа проверки себя на достоверность.
Для обеспечения соблюдения правил вам необходимо использовать проверяющий анализатор - этот анализатор может загружать XML и XSD и проверять XML на соответствие XSD. Это также верно для DTD.
Да, это возможно с помощью проверяющих синтаксических анализаторов XML, которые доступны для большинства языков общего назначения.
Хорошо, значит, это PHP, прямо с первого удара Google по "проверке XML PHP":
<?php
$xml = new DOMDocument();
$xml->load('./lures.xml');
if (!$xml->schemaValidate('./lures.xsd')) {
echo "invalid<p/>";
}
else {
echo "validated<p/>";
}
?>