Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Связь документа XML со своей схемой



 

Программе-анализатору, проверяющей соответствие документа XML его схеме, надо как-то указать файлы (один или несколько), содержащие схему документа. Это можно сделать разными способами. Во-первых, можно подать эти файлы на вход анализатора. Так делает, например, проверяющий анализатор XSV (XML Schema Validator) (ftp://ftp.cogsci.ed.ac.uk/pub/XSV/):

$ xsv ntb.xml ntbl.xsd ntb2.xsd

Во-вторых, можно задать файлы со схемой как свойство анализатора, устанавливаемое методом setPropertyO, или значение переменной окружения анализатора. Так делает, например, проверяющий'анализатор Xerces.

Эти способы удобны тогда, когда документ в разных случаях нужно связать с различными схемами. Если же схема документа фиксирована, то ее удобнее указать прямо в документе XML. Это делается одним из двух способов:

§ Если элементы документа не принадлежат никакому пространству имен и записаны без префикса, то в корневом элементе документа записывается атрибут noNamespaceSchemaLocation, указывающий расположение файла со схемой в форме URI:

 

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

xsi:noNamespaceSchemaLocation="ntb.xsd">

 

В этом случае в схеме не должно быть целевого пространства имен, т. е. не следует использовать атрибут targetNamespace.

§ Если же элементы документа относятся к некоторому пространству имен, то применяется атрибут schemaLocation, в котором через пробел перечисляются пространство имен и расположение файла со схемой, описывающей это пространство имен. Продолжая пример предыдущего раздела, можно написать:

 

<notebook xmlns="http://some.firm.com/2003/ntbNames"

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

xsi:schemaLocation=

"http://some.firm.com/someNames A.xsd

http://some.firm.com/anotherNames B.xsd"

xmlns:prl="http://some.firm.com/someNames"

xmlns:pr2="http://some.firm.com/anotherNames">

 

После этого в документе можно использовать имена, определенные в схемах A.xsd и B.xsd, снабжая их префиксами pri и рг2 соответственно.

 

Лабораторная работа №16

 

1. Создайте XSD-схему, в которой описываются элементы и атрибуты для XML-документа из лабораторной работы №5. Постарайтесь использовать безымянные типы элементов и сделайте пространство имён для описания элементов и атрибутов пространством по умолчанию.



2. Свяжите XML-документ с созданной XSD-схемой.

3. Сохраните оба файла в папке под своей фамилией.

4. Для отображения XML-документа в браузуре воспользуйтесь одним из способов (таблица стилей CSS, объект DSO, структура DOM, таблица стилей XSL) по согласованию с преподавателем.

5. Откройте XML-документ в браузере.

6. При появлении сообщений об ошибках, постарайтесь их найти и устранить.

7. Сдайте работы преподавателю.

 

Вопросы для тестирования

1. Какой из документов является корректным?

a. <?xml version=”1.0”?>

<zzz>

<xxx> раз </xxx>

</zzz>

</?xml>

b. <?xml version=”1.0”?>

<zzz>

<xxx> раз </xxx>

</zzz>

c. <?xml version=”1.0”?>

<zzz>

<xxx> раз </xxx>

</zzz>

<zzz>

<xxx> два </xxx>

</zzz>

d. <xml version=”1.0”>

<zzz>

<xxx> раз </xxx>

</zzz>

</xml>

2. Содержимое какого из элементов ZZZ записано без ошибки?

a. <ZZZ> a<b </ZZZ>

b. <ZZZ> a>b </ZZZ>

c. <ZZZ> a&b </ZZZ>

d. <ZZZ> a<>b </ZZZ>

3. Где правильно вставлен раздел CDATA?

a. <zzz atr=”xxx”> <![CDATA[<html>]]> </zzz>

b. <zzz atr=”xxx” <![CDATA[<html>]]>> Привет </zzz>

c. <zzz atr=”xxx” <![CDATA[<html>]]>«> Привет</zzz>

d. <zzz atr=”xxx”> Привет </zzz <![CDATA[<html>]]>>

4. Какой XML-документ соответствует DTD, представленному на рисунке 1?

Рисунок 1

 

a. <?xml version=”1.0”?>

<count>



<one> раз </one>

<three> три </three>

</count>

b. <?xml version=”1.0”?>

<count>

<two> два </two>

<three> три </three>

</count>

c. <?xml version=”1.0”?>

<count>

<one> раз </one>

<two> два </two>

<three> три </three>

</count>

d. <?xml version=”1.0”?>

<count>

<two> два </two>

</count>

5. Какой XML-документ соответствует DTD, представленному на рисунке 2?

Рисунок 2

 

a. <?xml version=”1.0”?>

<count>

<one> раз </one>

<two> два </two>

<one> раз </one>

</count>

b. <?xml version=”1.0”?>

<count>

<one> раз </one>

<one> раз </one>

<two> два </two>

</count>

c. <?xml version=”1.0”?>

<count>

<two> два </two>

</count>

d. <?xml version=”1.0”?>

<count>

<two> два </two>

<one> раз </one>

</count>

6. Какой XML-документ не соответствует DTD, представленному на рисунке 3?

Рисунок 3

 

a. <?xml version=”1.0”?>

<count>

<zzz one=”семь” three=”пять”> два </zzz>

</count>

b. <?xml version=”1.0”?>

<count>

<zzz two=”четыре” three=”три”> два </zzz>

</count>

c. <?xml version=”1.0”?>

<count>

<zzz one=”семь” two=”четыре”> два </zzz>

</count>

d. <?xml version=”1.0”?>

<count>

<zzz one=”один” three=”пять”> два </zzz>

</count>

7. Какой тип общего примитива не поддерживается в XML?

a. Внутренний разбираемый.

b. Внутренний неразбираемый.

c. Внешний разбираемый.

d. Внешний неразбираемый.

8. К какому типу примитивов относится объявленный ниже примитив?

<!ENTITY count

“Счёт

<one> раз </one>”>

a. К общему внутреннему разбираемому.

b. К общему внутреннему неразбираемому.

c. К параметрическому внутреннему разбираемому.

d. К параметрическому внешнему разбираемому.

9. Какой символ используется для обозначения ссылки на примитив?

a. @

b. #

c. &

d. $

10.Для создания какого типа примитива используется файл с расширением dtd?

a. Для общего внутреннего разбираемого.

b. Для общего внутреннего неразбираемого.

c. Для параметрического внутреннего разбираемого.

d. Для параметрического внешнего разбираемого.

11.В каком фрагменте допущена ошибка при определении типа?

a. <xsd:simpleType name=”zzz”>

<xsd:restriction base=”xsd:positiveInteger”>

<xsd:maxInclusive value=”10” />

</xsd:restriction>

</xsd:simpleType>

b. <xsd:simpleType name=”zzz”>

<xsd:restriction base=”xsd:positiveInteger”>

<xsd:maxOccurs value=”10” />

</xsd:restriction>

</xsd:simpleType>

c. <xsd:simpleType name=”zzz”>

<xsd:restriction base=”xsd:positiveInteger”>

<xsd:totalDigits value=”10” />

</xsd:restriction>

</xsd:simpleType>

d. <xsd:simpleType name=”zzz”>

<xsd:restriction base=”xsd:positiveInteger”>

<xsd:maxExclusive value=”10” />

</xsd:restriction>

</xsd:simpleType>

12.Какое объявление атрибута элемента сделано с ошибкой?

a. <xsd:attribute name=”zzz” type=”short” use=”implied” />

b. <xsd:attribute name=”zzz” type=”token” use=”prohibited” />

c. <xsd:attribute name=”zzz” type=”float” use=”optional” />

d. <xsd:attribute name=”zzz” type=”anyURI” use=”required” />

13.Какой компонент не используется при определении элементов простого типа?

a. list

b. extension

c. union

d. restriction

14.В каком компоненте restriction при объявлении элемента простого типа допущена ошибка?

a. <xsd:restriction base=”xsd:string”>

<xsd:pattern value=”[a-z]{5}” />

<xsd:enumeration value=”small” />

</xsd:restriction>

b. <xsd:restriction base=”xsd:decimal”>

<xsd:totaldigits value=”5” />

<xsd:fractionDigits value=”2” />

</xsd:restriction>

c. <xsd:restriction base=”xsd:decimal”>

<xsd:totaldigits value=”3” />

<xsd:maxInclusive value=”100” />

</xsd:restriction>

d. <xsd:restriction base=”xsd:positiveInteger”>

<xsd:maxExclusive value=”5” />

<xsd:minExclusive value=”2” />

</xsd:restriction>

15.Какой атрибут используется вместе с компонентом list при определении элементов списочного типа?

a. base

b. itemType

c. value

d. name

16.При определении какого типа элемента используется компонент “simpleContent”?

a. При определении элементов простого типа.

b. При определении пустого элемента сложного типа.

c. При определении элемента с простым телом.

d. При определении элемента со сложным телом.

17.Какой компонент не используется для определения модели группы элементов, вложенных в элемент сложного типа?

a. sequence

b. all

c. choise

d. extension

18.Для чего используется компонент “restriction” при определении типа элемента со сложным телом.

a. Для добавления элемента.

b. Для удаления элемента.

c. Для расширения типа базового элемента.

d. Для уточнения типа базового элемента.

19.Для чего используется атрибут “targetNamespace”?

a. Для задания в схеме пространства имён типов и элементов.

b. Для указания пространства имён при включении элементом “include” файлов одной схемы в другую.

c. Для задания пространства имён по умолчанию.

d. Для связывания XML-документа с файлом схемы.

20.Когда не используется атрибут “schemaLocation”?

a. При включении файлов одной схемы в другую.

b. При импортировании файлов одной схемы в другую.

c. При связывании файла схемы и XML-документа, который не принадлежит никакому пространству имён.

d. При связывании файла схемы и XML-документа, который принадлежит некоторому пространству имён.

21.Какой HTML-элемент сцепляется с XML-элементами при связывании данных?

a. <td>

b. <span>

c. <th>

d. <tr>

22.В каком случае HTML-элемент “checkbox”, сцеплённый c XML-элементом будет очищен?

a. Когда содержимым XML-элемента будет число.

b. Когда содержимым XML-элемента будет символ.

c. Когда содержимым XML-элемента будет слово «true».

d. Когда содержимое XML-элемента будет пустым.

23.Какой атрибут HTML-элемента испльзуется для обработки HTML-разметки XML-элемента?

a. datasrc

b. dataformatas

c. datafld

d. type

24.Какой атрибут используется с тэгом “<table>” для постраничного отображения XML-элементов при помощи сценария?

a. pagesize

b. datapagesize

c. datapagenumber

d. pagenumber

25.Что будет выведено в окне сообщения, созданного в сценарии строкой

alert(Document.childNodes(1).nodeValue);

для XML-документа, представленного справа?

a. Объявление XML-документа

b. Комментарий

c. Корневой элемент “<book>”

d. Вложенный элемент “<title>”

26.Для чего используется свойство DOM “documentElement”?

a. Для доступа к любому элементу XML-документа.

b. Для доступа к корневому элементу XML-документа.

c. Для доступа ко всему XML-документу.

d. Для доступа к первому элементу, вложенному в корневой элемент XML-документа.

27.К какому компоненту XML-документа нельзя применить свойство “attributes”?

a. К внутреннему DTD.

b. К внешнему DTD.

c. К внешнему примитиву.

d. К имени и значению в инструкции по обработке.

28.Где правильно указана ссылка на атрибут “nal” элемента “<book>” при осуществлении фильтрации данных XML-документа при помощи XSL-таблицы стилей?

a. <xsl:for-each select=”bibl/book[@nal='Да']”>

b. <xsl:for-each select=”bibl/book/@nal='Да'”>

c. <xsl:for-each select=”bibl/book[$nal='Да']”>

d. <xsl:for-each select=”bibl/book/$nal='Да'”>

29.С каким элементом XSL-таблицы стилей может использоваться атрибут “order-by” для осуществления сортировки данных XML-документа?

a. xsl:value-of

b. xsl:template

c. xsl:stylesheet

d. xsl:apply-templates

30.Какой атрибут XSL-таблицы стилей используется для задания шаблона отображения XML-элементов?

a. match

b. select

c. style

d. xmlns:xsl

 

СПИСОК ЛИТЕРАТУРЫ

 

1. Х. М. Дейтел и др. Как программировать на XML. Пер. с англ. – М.: ЗАО “Издательство БИНОМ”, 2005 г. – 944 с.: ил.

2. Майкл Янг. XML. Шаг за шагом: Практ. Пособ. /Пер. с англ. – М.: Издательство ЭКОМ, 2000. 384 с.: ил.

3. Питц-Моултис Н., Кирк Ч., XML в подлиннике: Пер. с англ. – СПб.: БХВ-Петербург, 2000. – 736 с.: ил.

4. Ильдар Хабибуллин. Теория и практика создания XML-документов. –СПб.: БХВ-Петербург, 2003. – 336 с.: ил.


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!