|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторная работа 4.1 Работа с XML SchemaСоздание XML Schema, тег xs:schema, утилита Stylus Studio, XML Writer Подготовка:Создайте на диске каталог Lab4-1 и скопируйте в него измененные вами на лабораторной работе 3.1 файлы pbml.dtd и Phonebook.xml. Ситуация:Для целей совместимости с корпоративными приложениями вам предписано перейти на использование XML Schema вместо DTD. Задание:1) Создайте XML Schema для вашего документа Phonebook.xml и сохраните ее в файле pbml.xsd. Перенастройте ваш документ на использование данной XML Schema. 2) Установите из соответствующих каталогов на компакт-диске: · Java RunTime Environment версии 1.4.2 · Stylus Studio XML Enterprise Edition версии 6 · XML Writer 3) проверьте созданную вами XML Schema средствами Stylus Studio на соответствие документу Phonebook.xml. 4) Сделайте копию файла Phonebook.xml и переименуйте ее в StylusPhonebook.xml. Затем средствами Stylus Studio сгенерируйте файл XML Schema для документа Phonebook.xml (он должен называться StylusPbml.xsd). 5) Средствами XML Writer создайте на основе имеющегося у вас файла pbml.dtd файл XML Schema (он должен называться WriterPbml.xsd). 6) Cравните созданные разными способами файлы схемы pbml.xsd, StylusPbml.xsd и WriterPbml.xsd. Решение:К пункту 1: Созданный вручную файл XML Schema (pbml.xsd) может выглядеть, например, так: <?xml version="1.0" encoding="WINDOWS-1251"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.askit.ru/pbml" xmlns:pbml="http://www.askit.ru/pbml"> <xs:element name="Phonebook"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="pbml:Record"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Record"> <xs:complexType> <xs:sequence> <xs:element ref="pbml:LastName"/> <xs:element ref="pbml:FirstName"/> <xs:element ref="pbml:Initials"/> <xs:element maxOccurs="unbounded" ref="pbml:Phonenumber"/> </xs:sequence> <xs:attribute name="Number" use="required" form="qualified" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="LastName" type="xs:Name"/> <xs:element name="FirstName" type="xs:Name"/> <xs:element name="Initials" type="xs:Name"/> <xs:element name="Phonenumber"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:NMTOKEN"> <xs:attribute name="PhoneType" use="required" form="qualified" type="xs:Name"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:schema> Необходимо также внести изменения в файл Phonebook.xml. Для этого нужно убрать тег <!DOCTYPE...> и добавить дополнительные атрибуты в тег для элемента Phonebook. Например, при использовании DTD начало вашего документа Phonebook.xml может выглядеть так: <?xml version="1.0" encoding="WINDOWS-1251"?> <!DOCTYPE Phonebook SYSTEM "pbml.dtd"> <pbml:Phonebook xmlns:pbml="http://www.askit.ru/pbml"> Для использования XML Schema из файла pbml.xsd можно изменить этот код на такой: <?xml version="1.0" encoding="WINDOWS-1251"?> <pbml:Phonebook xmlns:pbml="http://www.askit.ru/pbml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.askit.ru/pbml pbml.xsd"> Ответа к пункту 2 (установка программного обеспечения) нет. Если возникают какие-либо вопросы, можно обратиться к преподавателю. К пункту 3 - проверка созданного вами вручную файла pbml.xsd средствами Stylus Studio: 1) Запустите Stylus Studio и в меню Window выберите Close All, чтобы закрыть учебный проект. 2) При помощи меню File -> Open откройте измененный вами файл Phonebook.xml. 3) В меню XML выберите команду Validate Document. Должно вернуться сообщение "The XML document Phonebook.xml is valid". Если возникла ошибка, постарайтесь самостоятельно ее исправить. К пункту 4 - генерация XML Schema средствами Stylus Studio на основе существующего файла XML: 1) Закройте в окне Stylus Studio проверенный вами документ Phonebook.xml и откройте его копию с названием StylusPhonebook.xml. 2) Удалите в нем атрибут SchemaLocation для элемента Phonebook ("xsi:schemaLocation="http://www.askit.ru/pbml pbml.xsd"). 3) В меню XML выберите команду Generate Schema from XML Content. В открывшемся окне убедитесь, что переключатель установлен в положение "Generate XML Schema" и введите имя создаваемого файла StylusPbml.xsd с указанием полного пути к нему в файловой системе и нажмите на кнопку OK. 4) При помощи меню File -> Open откройте созданный вами файл схемы StylusPbml.xsd и посмотрите возможности работы с ним на вкладках Diagram, Tree и Documentation. К пункту 5 - генерация XML Schema на основе существующего файла DTD. 1) Запустите программное обеспечение XML Writer и закройте окно мастера, появляющееся при его открытии. 2) В меню File выберите Open и откройте файл pbml.dtd. Затем в меню DTD/Schema выберите команду Convert DTD to Schema. Откроется новое окно, в которое будет помещено сгенерированная схема. 3) В меню File выберите Save As и сохраните схему как WriterPbml.xsd.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||