Спонсор: Microsoft
Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 8216 / 665 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Самостоятельная работа 11:

Структура XML документа. XML схемы

< Лекция 10 || Самостоятельная работа 11: 12345 || Лекция 11 >

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

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

  1. Создание 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>

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

  2. Добавьте в начало файла внутреннюю 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>
    ]>
  3. Сохраните файл и проверьте его на правильность с помощью программы-валидатора, например, по адресу: http://validator.w3.org. Попробуйте удалить какой-либо элемент или атрибут, проверьте документ снова с помощью валидатора.
  4. Вынесите схему во внешний файл с размещением на него ссылки внутри XML-документа. Проверьте, как будет загружаться XML-документ.

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

  1. Создание 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>
  2. Создание файла 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>
  3. Проверьте схему на правильность с помощью программы-валидатора, например, по адресу: 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. Проверьте обе схемы с помощью соответствующих программ-валидаторов.

< Лекция 10 || Самостоятельная работа 11: 12345 || Лекция 11 >
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?