Как вы можете применить XSD?


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

 2
Author: Metropolis, 2010-09-22

2 answers

Применение правил XSD не может быть выполнено непосредственно в XML, так как это текстовый формат файла и не имеет внутренней логики или способа проверки себя на достоверность.

Для обеспечения соблюдения правил вам необходимо использовать проверяющий анализатор - этот анализатор может загружать XML и XSD и проверять XML на соответствие XSD. Это также верно для DTD.

 2
Author: Oded, 2010-09-21 21:08:25

Да, это возможно с помощью проверяющих синтаксических анализаторов 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/>"; 
} 

?>
 4
Author: unbeli, 2010-09-21 21:07:53