Создание схем XML на основе файлов DTD

Создание схемы XML из файла DTD позволяет создать создать такую схему XML, которая автоматически заполняется элементами и атрибутами из файла DTD. Использование схемы XML вместо файла DTD для проверки файла XML может сэкономить время, но при этом может потребоваться использовать правила, уже заданные в файле DTD.
Подготовка
Об этой задаче

Следующие инструкции написаны для проекции Ресурсы, но будут работать и в других проекциях.

Для того чтобы создать схему XML на основе файла DTD, выполните следующие действия:

  1. На панели навигации щелкните правой кнопкой мыши на DTD и выберите пункт Создать > Схему XML.
  2. Выберите проект или папку для создаваемой схемы.
  3. Примите имя по умолчанию или введите новое имя и нажмите кнопку Далее.
  4. Если требуется создать схему XML, содержащую файл вашего DTD и какие-либо связанные файлы DTD, нажмите кнопку переключателя Создать одну схему XML, включающую все файлы DTD.
  5. Если же требуется создать отдельную схему для файла вашего DTD и каждого связанного с ним файла DTD, нажмите кнопку переключателя Создать схему XML для каждого файла DTD. При выборе этой опции каждая схема XML будет иметь то же имя, которое имеет связанный файл DTD, на основе которого она создана. Например, если DTD имеет имя Greetings.dtd и связано с файлами Hello.dtd и Goodbye.dtd, то потребуется создать схему на основе файла Greetings.dtd (с указанным для него именем) и еще две схемы с именами Hello.xsd и Goodbye.xsd.
  6. Нажмите Готово.
Результат

Созданные схемы будет открыты на панели Навигатор. Имя каждой схемы будет соответствовать имени фала DTD, на основе которого она создана (если в поле Имя файла при создании схемы XML было принято имя по умолчанию).

В этой схеме XML не будет содержаться сущностей, которые были в вашем файле DTD (поскольку в схемах XML сущности не поддерживаются). Однако любые элементы или атрибуты, связанные с сущностью, будут перенесены в схему XML вместе со значениями.

Пример

Предположим, имеется DTD с именем "Legal", в котором содержится сущность с именем "Copyright". Сущность имеет значение "Copyright 2004. Издательство МояКомпания". В DTD имеется элемент с именем "MyCopyright", связанный с сущностью Copyright. После создания схемы XML сущность Copyright не будет показана в схеме XML schema, однако ее значение будет перенесено (MyCopyright будет иметь значение Copyright 2004. Издательство МояКомпания).

Все элементы и атрибуты, существовавшие в файле DTD, будут существовать в файле схемы XML.

Элементы вашего DTD с моделью информации (#PCDATA) (и без атрибутов) будут показаны в редакторе схемы XML как пустые. Они будут помечены как имеющие Встроенные простые типы строка. То есть, элемент DTD со значением (#PCDATA) будет преобразован в элемент схемы XML с простым типом схемы XML string.

Прим.: При создании схемы XML на основе файла DTD, содержащего элементы с кодировкой иврит или арабской кодировкой, некоторые имена элементов могут быть закодированы с помощью эквивалентных шестнадцатеричных значений кодировки иврит или арабской кодировки. Для предотвращения этой ошибки предварительно измените атрибут кодировки исходного файла DTD или схемы XML на UTF-8. Таким образом, объявление XML должно иметь вид: <?xml version="1.0" encoding="UTF-8"?> Список измененных значений кодировки: ISO-8859-8-I, ISO-8859-8, Windows-1256 и ISO-8859-6.
Дальнейшие действия

Комментарии