Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии программирования / источники / +Web-технол 1-36 / 21. +ЛР Структура XML документа. XML схемы.doc
Скачиваний:
201
Добавлен:
10.05.2015
Размер:
157.18 Кб
Скачать

Порядок выполнения лабораторной работы

1.Описание структуры xml-документа с помощью dtd-схемы.

  1. Создание XML-документа timetable.xml. Содержимое документа приведено ниже.

  2. <?xml version="1.0"?>

  3. <timetable>

  4. <day dayOfWeek="Monday">

  5. <lesson type="practical">

  6. <timeFrom>08.00</timeFrom>

  7. <timeTo>09.30</timeTo>

  8. <subject>Deutsch</subject>

  9. <teacher>Borisova</teacher>

  10. <room>216</room>

  11. </lesson>

  12. <lesson type="lecture">

  13. <timeFrom>09.40</timeFrom>

  14. <timeTo>11.10</timeTo>

  15. <subject>SAP Administration</subject>

  16. <teacher>Egorov</teacher>

  17. <room>384</room>

  18. </lesson>

  19. <lesson type="practical">

  20. <timeFrom>11.20</timeFrom>

  21. <timeTo>12.50</timeTo>

  22. <subject>SAP Administration</subject>

  23. <teacher>Petrov</teacher>

  24. <room>384</room>

  25. </lesson>

  26. </day>

</timetable>

Загрузите этот файл в браузере. Обратите внимание на иерархическую структуру документа.

  1. Добавьте в начало файла внутреннюю DTD-схему:

  2. <?xml version="1.0"?>

  3. <!DOCTYPE timetable[

  4. <!ELEMENT timetable (day*)>

  5. <!ELEMENT day (lesson+)>

  6. <!ELEMENT lesson (timeFrom, timeTo, subject, teacher, room?)>

  7. <!ELEMENT timeFrom (#PCDATA)>

  8. <!ELEMENT timeTo (#PCDATA)>

  9. <!ELEMENT subject (#PCDATA)>

  10. <!ELEMENT teacher (#PCDATA)>

  11. <!ELEMENT room (#PCDATA)>

  12. <!ATTLIST day

  13. dayOfWeek CDATA #REQUIRED>

  14. <!ATTLIST lesson

  15. type CDATA #REQUIRED>

]>

  1. Сохраните файл и проверьте его на правильность с помощью программы-валидатора, например, по адресу: http://validator.w3.org. Попробуйте удалить какой-либо элемент или атрибут, проверьте документ снова с помощью валидатора.

  2. Вынесите схему во внешний файл с размещением на него ссылки внутри XML-документа. Проверьте, как будет загружаться XML-документ.

2.Описание структуры xml-документа с помощью xml Schema.

  1. Создание XML-документа timetable2.xml. Содержимое документа приведено ниже.

  2. <?xml version="1.0"?>

  3. <timetable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  4. xsi:noNamespaceSchemaLocation="timetable.xsd">

  5. <day dayOfWeek="Monday">

  6. <lesson type="practical">

  7. <timeFrom>08.00</timeFrom>

  8. <timeTo>09.30</timeTo>

  9. <subject>Deutsch</subject>

  10. <teacher>Borisova</teacher>

  11. <room>216</room>

  12. </lesson>

  13. <lesson type="lecture">

  14. <timeFrom>09.40</timeFrom>

  15. <timeTo>11.10</timeTo>

  16. <subject>SAP Administration</subject>

  17. <teacher>Egorov</teacher>

  18. <room>384</room>

  19. </lesson>

  20. <lesson type="practical">

  21. <timeFrom>11.20</timeFrom>

  22. <timeTo>12.50</timeTo>

  23. <subject>SAP Administration</subject>

  24. <teacher>Petrov</teacher>

  25. <room>384</room>

  26. </lesson>

  27. </day>

</timetable>

  1. Создание файла timetable.xsd, содержащего XML Schema:

  2. <?xml version="1.0" encoding="ISO-8859-1" ?>

  3. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  4. <xs:element name = "timetable">

  5. <xs:complexType>

  6. <xs:sequence>

  7. <xs:element ref = "day" minOccurs = "0" maxOccurs = "unbounded"/>

  8. </xs:sequence>

  9. </xs:complexType>

  10. </xs:element>

  11. <xs:element name = "day">

  12. <xs:complexType>

  13. <xs:sequence>

  14. <xs:element ref = "lesson" maxOccurs = "unbounded"/>

  15. </xs:sequence>

  16. <xs:attribute name = "dayofWeek" use = "required" type = "xs:string"/>

  17. </xs:complexType>

  18. </xs:element>

  19. <xs:element name = "lesson">

  20. <xs:complexType>

  21. <xs:sequence>

  22. <xs:element ref = "timeFrom"/>

  23. <xs:element ref = "timeTo"/>

  24. <xs:element ref = "subject"/>

  25. <xs:element ref = "teacher"/>

  26. <xs:element ref = "room" minOccurs = "0"/>

  27. </xs:sequence>

  28. </xs:complexType>

  29. </xs:element>

  30. <xs:element name = "timeFrom" type = "xs:string"/>

  31. <xs:element name = "timeTo" type = "xs:string"/>

  32. <xs:element name = "subject" type = "xs:string"/>

  33. <xs:element name = "teacher" type = "xs:string"/>

  34. <xs:element name = "room" type = "xs:string"/>

</xs:schema>

  1. Проверьте схему на правильность с помощью программы-валидатора, например, по адресу: http://www.w3.org/2001/03/webdata/xsv.