Я хотел бы создать XML, который следует за XML-схемой http://www.oid-info.com/oid.xsd. Этот XSD следует каким-то образом ссылаться в XML-файле, так что инструмент, подобный https://validator.w3.org/, может проверить его, чтобы найти ошибки в семантике данных, например. когда адрес электронной почты недействителен.Как ссылаться на XSD в XML для службы валидации разметки W3C?
Во-первых, я попытался это так:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<oid-database xmlns="http://www.oid-info.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oid-info.com/oid.xsd">
<submitter>
....
</submitter>
<oid>
....
</oid>
</oid-database>
W3C Markup Validation Service говорит:
Нет DOCTYPE найден! Проверка только синтаксиса XML. Декларация DOCTYPE не была признана или отсутствует. Вероятно, это означает, что Publical Public Identifier содержит орфографическую ошибку или что в объявлении не используется правильный синтаксис или что ваш XML-документ не использует декларацию DOCTYPE . Валидация документа была пропущена, а простая проверка правильности синтаксиса XML была выполнена вместо .
Хорошо, так что я пытался использовать DOCTYPE
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE oid-database>
<oid-database xmlns="http://www.oid-info.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oid-info.com/oid.xsd">
<submitter>
....
</submitter>
<oid>
....
</oid>
</oid-database>
Теперь W3C Validator говорит:
линия 2, колонка 23: без внутреннего или внешнего типа документа подмножества; будет анализироваться без проверки
Я действительно знаю, что такое DTD, и я работал с DTD в прошлом. Я знаю, что DTD здесь отсутствует. Но я хочу проверить XSD, а не против DTD.
Что мне нужно сделать, чтобы оно работало?
Большое спасибо за эту информацию. Какой инструмент вы использовали для проверки этого XML? Инструмент http://www.freeformatter.com/xml-validator-xsd.html требует, чтобы вы ввели XSD вручную. Я бы хотел, чтобы он читал его непосредственно из XML-файла и загружал дальнейшие ссылки на XSD (например, xhtml-light.xsd) автоматически. –
Я не использую онлайн-валидатор, но [этот] (https://devutilsonline.com/xml/validate), похоже, соответствует вашим требованиям; Я использую автономный, валидатор на основе Xerces-J. – kjhughes