Зачем конвертировать XSD в DTD?
DTD - это более старый формат схем для XML, представленный вместе с SGML в 1986 году и адаптированный для XML в 1998 году. Конвертация из XSD в .dtd целесообразна только для устаревших систем, которые появились раньше XSD и принимают для валидации только DTD; во всех остальных случаях XSD обладает строго большими возможностями.
Способы конвертации XSD в DTD
Oxygen XML Editor APP
Откройте .xsd, перейдите в Tools > Generate/Convert Schema, выберите DTD в качестве выходного формата, укажите место сохранения файла и нажмите OK; изучите отчет о конвертации на предмет функций, которые не удалось перенести.
Saxon FREE
Примените пользовательскую таблицу стилей XSLT, нацеленную на объявления xs:element, запустив ее с помощью Saxon для вашего .xsd; этот подход охватывает лишь подмножество XSD, и результат потребует ручной доработки.
Об этих форматах
Файл XSD - это определение схемы XML (XML Schema Definition), текстовый файл, устанавливающий правила того, что может содержать конкретный документ XML. Откройте его в любом текстовом…
Открыть детали .XSD →Файл DTD - это определение типа документа (Document Type Definition), схема в формате обычного текста, которая задает разрешенные элементы, атрибуты и правила вложенности для документов XML…
Открыть детали .DTD →Качество и на что обратить внимание
- В DTD нет типов данных: все
xs:string,xs:integer, ограничения по шаблону и значениям превращаются в обычные#PCDATAилиCDATAв выходном файле. - Пространства имен отбрасываются: если XSD использует
targetNamespaceили импортирует несколько пространств имен, ничего из этого не сохранится в DTD. - В настоящее время не поддерживается ни один бесплатный автономный инструмент с надежной конвертацией XSD в DTD; Oxygen XML Editor (платный, доступна пробная версия) является практичным выбором.