Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 8253 / 690 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Специальности: Разработчик интернет-проектов
Теги:
Самостоятельная работа 11:
Структура XML документа. XML схемы
Порядок выполнения лабораторной работы
1.Описание структуры XML-документа с помощью DTD-схемы.
- Создание XML-документа timetable.xml. Содержимое документа приведено ниже.
<?xml version="1.0"?> <timetable> <day dayOfWeek="Monday"> <lesson type="practical"> <timeFrom>08.00</timeFrom> <timeTo>09.30</timeTo> <subject>Deutsch</subject> <teacher>Borisova</teacher> <room>216</room> </lesson> <lesson type="lecture"> <timeFrom>09.40</timeFrom> <timeTo>11.10</timeTo> <subject>SAP Administration</subject> <teacher>Egorov</teacher> <room>384</room> </lesson> <lesson type="practical"> <timeFrom>11.20</timeFrom> <timeTo>12.50</timeTo> <subject>SAP Administration</subject> <teacher>Petrov</teacher> <room>384</room> </lesson> </day> </timetable>
Загрузите этот файл в браузере. Обратите внимание на иерархическую структуру документа.
- Добавьте в начало файла внутреннюю DTD-схему:
<?xml version="1.0"?> <!DOCTYPE timetable[ <!ELEMENT timetable (day*)> <!ELEMENT day (lesson+)> <!ELEMENT lesson (timeFrom, timeTo, subject, teacher, room?)> <!ELEMENT timeFrom (#PCDATA)> <!ELEMENT timeTo (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT teacher (#PCDATA)> <!ELEMENT room (#PCDATA)> <!ATTLIST day dayOfWeek CDATA #REQUIRED> <!ATTLIST lesson type CDATA #REQUIRED> ]>
- Сохраните файл и проверьте его на правильность с помощью программы-валидатора, например, по адресу: http://validator.w3.org. Попробуйте удалить какой-либо элемент или атрибут, проверьте документ снова с помощью валидатора.
- Вынесите схему во внешний файл с размещением на него ссылки внутри XML-документа. Проверьте, как будет загружаться XML-документ.
2.Описание структуры XML-документа с помощью XML Schema.
- Создание XML-документа timetable2.xml. Содержимое документа приведено ниже.
<?xml version="1.0"?> <timetable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="timetable.xsd"> <day dayOfWeek="Monday"> <lesson type="practical"> <timeFrom>08.00</timeFrom> <timeTo>09.30</timeTo> <subject>Deutsch</subject> <teacher>Borisova</teacher> <room>216</room> </lesson> <lesson type="lecture"> <timeFrom>09.40</timeFrom> <timeTo>11.10</timeTo> <subject>SAP Administration</subject> <teacher>Egorov</teacher> <room>384</room> </lesson> <lesson type="practical"> <timeFrom>11.20</timeFrom> <timeTo>12.50</timeTo> <subject>SAP Administration</subject> <teacher>Petrov</teacher> <room>384</room> </lesson> </day> </timetable>
- Создание файла timetable.xsd, содержащего XML Schema:
<?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name = "timetable"> <xs:complexType> <xs:sequence> <xs:element ref = "day" minOccurs = "0" maxOccurs = "unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "day"> <xs:complexType> <xs:sequence> <xs:element ref = "lesson" maxOccurs = "unbounded"/> </xs:sequence> <xs:attribute name = "dayofWeek" use = "required" type = "xs:string"/> </xs:complexType> </xs:element> <xs:element name = "lesson"> <xs:complexType> <xs:sequence> <xs:element ref = "timeFrom"/> <xs:element ref = "timeTo"/> <xs:element ref = "subject"/> <xs:element ref = "teacher"/> <xs:element ref = "room" minOccurs = "0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name = "timeFrom" type = "xs:string"/> <xs:element name = "timeTo" type = "xs:string"/> <xs:element name = "subject" type = "xs:string"/> <xs:element name = "teacher" type = "xs:string"/> <xs:element name = "room" type = "xs:string"/> </xs:schema>
- Проверьте схему на правильность с помощью программы-валидатора, например, по адресу: http://www.w3.org/2001/03/webdata/xsv.
Контрольное задание
В приведенном ниже XML документе описана экзаменационная ведомость:
<gradeReport id="120851"> <date>10-06-2008</date> <subject>Computer Science Fundamentals</subject> <examiner>prof.Litvinov</examiner> <gradeList> <gradeRecord id="1"> <student>Ivanov</student> <grade>4</grade> </gradeRecord> <gradeRecord id="2"> <student>Petrov</student> <grade>3</grade> </gradeRecord> <gradeRecord id="3"> <student>Sidorov</student> <grade>5</grade> </gradeRecord> </gradeList> </gradeReport>
Опишите структуру данного документа с помощью DTD схемы и XML Schema. Проверьте обе схемы с помощью соответствующих программ-валидаторов.