Как документ XML проверяется на соответствие документу XSD или DTD? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь понять принцип проверки XML.Есть пункт, которого я еще не понял: каков процесс, который отвечает за фактическую проверку XML-документа по его определению XSD (или DTD)?

Я хотел бы знать, по умолчанию ли этопоставляется с операционной системой или с помощью редактора, который мы используем (например, Oxygen IDE)?Спасибо за ваши полезные разъяснения.

Ответы [ 3 ]

0 голосов
/ 11 июня 2019

Oxygen использует пакет XML Apache Xerces / J (Java) для анализа и проверки XML на соответствие DTD или XSD (см., Например, https://www.oxygenxml.com/forum/topic15534.html).. Скорее всего, Apache Xerces сильно настроен и расширен для использования дополнительными компонентами JAXP.в Oxygen, например, необходимые для метаданных DTD и XSD для интерактивного редактирования, а также для проверки на соответствие RNG и т. д.

0 голосов
/ 11 июня 2019

В случае проверки DTD процесс проверки всегда тесно связан с синтаксическим анализом XML; многие анализаторы XML имеют возможность включать или отключать проверку, и если она включена, анализатор извлекает DTD и проверяет экземпляр на его основе, как правило, «на лету» в процессе анализа.

XML-анализаторы могут поставляться с вашим языком программирования (например, Java, C #, Python), или они могут быть автономными сторонними библиотеками. Некоторые могут быть связаны с операционной системой, но на самом деле они не являются частью операционной системы.

В случае проверки схемы XSD валидатор может быть связан как часть синтаксического анализатора XML, как указано выше, или это может быть отдельный компонент. Таким образом, синтаксический анализатор может иметь возможность вызывать проверку схемы на лету во время синтаксического анализа, или может существовать автономная утилита проверки. Например, в мире Java синтаксический анализатор Xerces имеет параметры для вызова проверки XSD, но в Saxon также есть средство проверки схемы, которое включает обработку XSLT и XQuery, но само по себе не выполняет синтаксический анализ XML.

Интерактивные среды разработки («редакторы»), такие как oXygen и Altova XMLSpy, обычно включают в себя валидатор схемы XSD; это может быть тот, который они разработали сами (Altova) или сторонний продукт, который они интегрировали (oXygen позволяет выбирать между валидаторами Xerces и Saxon).

0 голосов
/ 11 июня 2019

Хотелось бы узнать, есть ли

это по умолчанию предоставляется ОС,

номер

или это делает используемый нами редактор (например, Oxygen IDE)?

Также нет.

Это выполняется проверяющим процессором XML.
(Который, конечно, может быть интегрирован в IDE, например, Oxygen).
Один проверяющий процессор XML / XSLT - это коммерческое издание Saxon: SAXON EE :

Коммерческая версия Enterprise Edition от Saxonica, поддерживающая XSLT 3.0, XPath 2.0 и 3.1, XQuery 3.1, XML Schema 1.0 и 1.1 и XQuery Update 1.0.

Другая возможность - использовать Xerces, анализатор с открытым исходным кодом , описанный в этом ответе SO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...