Скачать презентацию Лекция 4 XML — схема Лекция 3 16 Скачать презентацию Лекция 4 XML — схема Лекция 3 16

lecture-04.ppt

  • Количество слайдов: 52

Лекция 4. XML - схема Лекция 3/16 Лекция 4. XML - схема Лекция 3/16

DTD для XML Schemas • schema Определение типа • • • complex. Type simple. DTD для XML Schemas • schema Определение типа • • • complex. Type simple. Type complex. Content simple. Content extension restriction Определение элементов • • • element group all choice sequence Открытый контент • any. Attribute Определение атрибутов n n attribute. Group Cсылочные механизмы • • • unique keyref selector field Комбинационные механизмы • • include import redefine notation Передача инструкций или документация • annotation • appinfo • documentation Лекция 3/16

DTD для XML Schemas <!ELEMENT schema ((include | import | redefine | annotation)*, ((simple. DTD для XML Schemas

Атрибуты элемента schema id ID #IMPLIED final. Default %complex. Derivation. Set; final. Default: задание Атрибуты элемента schema id ID #IMPLIED final. Default %complex. Derivation. Set; final. Default: задание значения по умолчанию block. Default %block. Set; block. Default: задание значения по умолчанию element. Form. Default %form. Values; 'unqualified' attribute. Form. Default %form. Values; 'unqualified‘ Допустимые значения для element. Form. Default (attribute. Form. Default) - qualified и unqualified. Значение по умолчанию - unqualified. Если element. Form. Default (attribute. Form. Default)="unqualified”, то все локальные элементы (атрибуты) в документе не должны быть связаны с пространствами имен. Если element. Form. Default (attribute. Form. Default) ="qualified" то все локальные элементы (атрибуты) в документе должны быть связаны с пространствами имен.

Что использовать qualified или unqualified? • В документе, независимо от того определяете Вы все Что использовать qualified или unqualified? • В документе, независимо от того определяете Вы все элементы или только глобальные, все элементы разбираются. • В чем различие при задании значения element. Form. Default “qualified” или “unqualified”? • Cлучай 1: element. Form. Default="unqualified" и в документе определены только глобальные элементы • Pro: спрятана сложность пространства имен в схеме • Con: если схема модифицируется, т. е. локальные декларации делаются глобальными, то все документы конфликтуют; пользователю надо помнить о том какие элементы глобальные и какие локальные. • Случай 2: element. Form. Default="qualified" и в документе определены все элементы • Pro: если в схеме локальные элементы преобразуются в глобальные, то нет конфликта документов; пользователю не надо помнить о том какие элементы глобальные, а какие локальные; для целей copyright желательно показывать пространства имен в документе. • Con: показывается сложная структура пространств имен в документе

DTD для XML Schemas <!ELEMENT complex. Type (annotation? , (simple. Content|complex. Content| ((all | DTD для XML Schemas block: используется для запрещения типу элемента быть замененным производным типом abstract: используется для создания порождающих типов, которые в документе не используются.

Атрибуты элемента complex. Type Запрещение задания типов • Иногда при создании типа необходимо запретить Атрибуты элемента complex. Type Запрещение задания типов • Иногда при создании типа необходимо запретить ему быть базовым типом для создания иных типов или только расширения или ограничения. • Причина: «Например, можно создать complex. Type и сделать его доступным для использования другим. Однако, может возникнуть потребность запрета на его изменение, скажем для случая копирайта. " редуцирован или расширен Тип не может быть Тип не может быть редуцирован Тип не может быть расширен

Атрибуты элемента complex. Type mixed • Содержанием элементов в документе могут быть элементы или Атрибуты элемента complex. Type mixed • Содержанием элементов в документе могут быть элементы или данные • Элемент, содержащий смесь элементов и (строковых) данных, называется смешанным контентом. • Смешанный контент может иметь много приложений, Например, XSLT использует смешанный контент в правилах для шаблонов The title of the book is: The author of the book is: Заметим, что содержание xsl: элемента является смесью строковых данных и элементов.

DTD для XML Schemas <!ELEMENT complex. Content (restriction|extension)> <!ATTLIST complex. Content mixed (true | DTD для XML Schemas

DTD для XML Schemas <!ELEMENT element ((annotation)? , (complex. Type | simple. Type)? , DTD для XML Schemas

Атрибуты элемента Element nillable abstract final block form %boolean; %complex. Derivation. Set; %block. Set; Атрибуты элемента Element nillable abstract final block form %boolean; %complex. Derivation. Set; %block. Set; %form. Values; #IMPLIED #IMPLIED • form: используется для отмены element. Form. Default (определенном в элементе schema). Принимает два значения - qualified или unqualified. Если значение для form - qualified, то элемент должен быть отнесен к пространству имен в экземпляре документа. • abstract: используется для указания на то, что элемент является собирательным именем для группы подстановки substitution. Group. По умолчанию принимает значение false. • block: используется для запрещения замены данного элемента на элемент из группы подстановки или запрещения типу элемента быть замененным производным типом. • nillable: указывает на то, что значение элемента в документе может быть пусто, что указывается в значении атрибута xsi: null. Значение по умолчанию false.

DTD для XML Schemas <!ELEMENT group (annotation? , (all | choice | sequence)? )> DTD для XML Schemas

DTD для XML Schemas <!ELEMENT choice ((annotation)? , (element| group| (choice | sequence) | DTD для XML Schemas

DTD для XML Schemas <!ELEMENT any (annotation)? > <!ATTLIST any namespace CDATA '##any' process. DTD для XML Schemas пространство имен специфицируется также как 'any' simple. Type only if no type|ref attribute ref not allowed at top level, name iff at top level wfxml спецификация контента (well-formed XML)

DTD для XML Schemas <!ELEMENT attribute ((annotation)? , (simple. Type)? )> <!ATTLIST attribute name DTD для XML Schemas type и ref взаимно исключаемы. name и ref взаимно исключаемы, допустимо либо одно, либо другое. Значение по умолчанию для use - optional. default и fixed взаимно исключаемы. type и simple. Type взаимно исключаемы

DTD для XML Schemas <!ELEMENT attribute. Group (annotation? , (attribute | attribute. Group)*, any. DTD для XML Schemas

Book. Store. dtd <!ELEMENT Book. Store (Book+)> <!ELEMENT Book (Title, Author, Date, ISBN, Publisher)> Book. Store. dtd ELEMENT ATTLIST Book. Store Author #PCDATA Book ID NMTOKEN CDATA ENTITY Это словарь с помощью которого DTDs обеспечивают создание нового словаря Title Date Publisher ISBN

http: //www. w 3. org/2001/XMLSchema http: //www. books. org (target. Namespace) complex. Type element http: //www. w 3. org/2001/XMLSchema http: //www. books. org (target. Namespace) complex. Type element Book. Store Author sequence Book schema string boolean integer Title Publisher ISBN Date Это словарь с помощью которого XML схема обеспечивают создание нового словаря Разница между XML схемой и DTDs состоит в том, что XML схема связана с пространством имен. Набор DTDs нельзя связать с одним пространством имен.

Book. Store. xsd = Xml-Schema Definition

ISBN, Publisher)>

Все XML схемы имеют тег "schema" В качестве корневого элемента.

Элементы и типы данных, используемые для построения схем - schema - element - complex. Type - sequence - string принадлежат пространству имен http: //…/XMLSchema

Пространство имен XMLSchema http: //www. w 3. org/2001/XMLSchema complex. Type element sequence schema string Пространство имен XMLSchema http: //www. w 3. org/2001/XMLSchema complex. Type element sequence schema string integer boolean

Указывает на то, что элементы, определяемые схемой - Book. Store - Book - Title - Author - Date - ISBN - Publisher принадлежат пространству имен http: //www. books. org

Пространство имен Books (target. Namespace) http: //www. books. org (target. Namespace) Book. Store Book Пространство имен Books (target. Namespace) http: //www. books. org (target. Namespace) Book. Store Book Title Date Author ISBN Publisher

Пространство имен по умолчанию http: //www. books. org совпадает с target. Namespace! Вот ссылка на декларацию элемента Book. В каком пространстве имен Book? Так как приставка отсутствует, то элемент Book в пространстве имен по умолчанию, т. е. target. Namespace! T. о. , это ссылка на декларацию элемента Book в данной схеме.

Это директива любому элементу соответствующему данной схеме: Любые элементы, используемые в документе, которые декларированы в этой схеме, должны быть специфицированы по пространствам имен.

3 3 Ссылка на схему в XML документе 3 2 My Life and Times Paul Mc. Cartney July, 1998 94303 -12021 -43892 Mc. Millin Publishing . . . 1. 2. 3. Использование пространства имен по умолчанию указывает парсеру на то, что все элементы документа относятся к пространству имен http: //www. books. org. schema. Location указывает парсеру на то, что в пространстве имен http: //www. books. org определена схема Book. Store. xsd (i. e. , schema. Location содержит пару значений). указывает парсеру на то, что атрибут schema. Location определен в пространстве имен XMLSchema-instance.

Ссылка на схему в XML документе schema. Location= Ссылка на схему в XML документе schema. Location="http: //www. books. org Book. Store. xsd" Book. Store. xml - использует элементы из пространства имен http: //www. books. org target. Namespace="http: //www. books. org" Book. Store. xsd - определяет элементы в пространстве имен http: //www. books. org Схема определяет новый словарь. Документы используют этот словарь.

Многоуровневость проверки Book. Store. xml Book. Store. xsd Проверка на то, что xml документ Многоуровневость проверки Book. Store. xml Book. Store. xsd Проверка на то, что xml документ Соответствует правилам, описанным в Book. Store. xsd XMLSchema. xsd (schema-for-schemas) Проверяем, что Book. Store. xsd является корректной схемой, i. e. , он соответствует правилам описанным в schema-forschemas

Значения по умолчанию для min. Occurs и max. Occurs • Значение по умолчанию для Значения по умолчанию для min. Occurs и max. Occurs • Значение по умолчанию для min. Occurs - "1" • Значение по умолчанию для max. Occurs - "1" Equivalent!

Заметим, что http: //…/XMLSchema является пространством имен по умолчанию. Следовательно, нет необходимости использовать приставки для - schema - element - complex. Type - sequence - string

Линейные декларации элемента Все декларации элементов помещены внутрь и исчезла возможность ссылаться на эти элементы. Схема стала более компактной! Такой способ создания схемы – вкладывание во внутрь – называют матрешкой

Анонимные типы

Поименованные типы Named type Преимущество расщепления декларации элемента Book и введения поименованного типа состоит в том, что он может использоваться другими элементами.

Заметим, что: Элемент A ссылается на complex. Type foo. эквивалентно: Элемент A содержит декларацию complex. Type внутри своей декларации.

Атрибут type или дочерний элемент complex. Type • Декларация элемента может иметь или атрибут Атрибут type или дочерний элемент complex. Type • Декларация элемента может иметь или атрибут type, или дочерний элемент complex. Type.

Простой тип" src="https://present5.com/presentation/103334914_105984201/image-38.jpg" alt="Декларация элементов. Резюме. 1 Простой тип" /> Декларация элементов. Резюме. 1 Простой тип Неотриц. целое Неотрицательное (e. g. , xsd: string) целое или "unbounded" или Note: min. Occurs и max. Occurs a complex. Type (e. g. , Book. Publication) можно использовать в локальных декларациях элементов 2

Типы данных • Встроенные типы данных (i. e. , известные типы для парсеров схемы Типы данных • Встроенные типы данных (i. e. , известные типы для парсеров схемы ) • Этот тип данных используется для представления дня (год-месяц-день) • Элементы с типом date должны иметь форму: CCYY-MM-DD • диапазон CC : 00 -99 • диапазон YY : 00 -99 • диапазон MM: 01 -12 • диапазон DD: • 01 -28 если месяц 2 • 01 -29 если месяц 2 и g. Year высокосный • 01 -30 если месяц 4, 6, 9 или 11 • 01 -31 если месяц 1, 3, 5, 7, 8, 10 или 12 • Example: 1999 -05 -31 представляет May 31, 1999

Тип данных g. Year • Встроенный тип (Григорианский календарь) • Элементы с типом g. Тип данных g. Year • Встроенный тип (Григорианский календарь) • Элементы с типом g. Year должны иметь форму : CCYY • диапазон CC : 00 -99 • диапазон YY : 00 -99 • Пример: 1999 указывает год g. Year 1999

Определение нового типа данных ISBNType. Декларация Date с типом g. Year, и ISBN с типом ISBNType (defined above)

" src="https://present5.com/presentation/103334914_105984201/image-42.jpg" alt=" " /> Продекларирован новый тип ISBNType. Он является ограничительной формой типа string. Элементы такого типа должны соответствовать следующим образцам: - Первый шаблон: 1 цифра - 5 цифр - 3 цифры - 1 цифра - Второй шаблон: 1 - 3 - 5 - 1 - Третий шаблон: 1 - 2 - 6 - 1 Эти образцы специфицируются с помощью Regular Expressions.

Эквивалентные выражения Вертикальная линия означает “или"

Встроенные типы данных • Примитивы типов данных • • • String boolean decimal float Встроенные типы данных • Примитивы типов данных • • • String boolean decimal float double duration date. Time time date g. Year. Month g. Year g. Month. Day • Атомные, встроенные • "Hello World" • {true, false, 1, 0} • • • 7. 08 12. 56 E 3, 12, 12560, 0, -0, INF, -INF, NAN P 1 Y 2 M 3 DT 10 H 30 M 12. 3 S format: CCYY-MM-DDThh: mm: ss format: hh: mm: ss. sss format: CCYY-MM-DD format: CCYY-MM format: CCYY format: --MM-DD Замечание: 'T' – разделитель дня от часов INF = infinity NAN = not-a-number

Встроенные типы данных • Примитивы типов данных • • g. Day g. Month hex. Встроенные типы данных • Примитивы типов данных • • g. Day g. Month hex. Binary base 64 Binary any. URI Qname NOTATION Атомные, встроенные • format: ---DD (note the 3 dashes) • • • format: --MM-a hex string a base 64 string http: //www. xfront. com a namespace qualified name a NOTATION from the XML spec

Встроенные типы данных n Производные типы данных • normalized. String • Token • • Встроенные типы данных n Производные типы данных • normalized. String • Token • • language IDREFS • ENTITIES • NMTOKENS • • Name NCName • ID, IDREF • ENTITY • • integer non. Positive. Integer n Подтипы примитивов типов данных • A string without tabs, line feeds, or carriage returns • String w/o tabs, l/f, leading/trailing spaces, consecutive spaces • any valid xml: lang value, e. g. , EN, FR, . . . • Должно использоваться только с атрибутами • part (no namespace qualifier) • Должно использоваться только с атрибутами • 456 • negative infinity to 0

Встроенные типы данных n Производные типы n Подтипы примитивов типов данных • negative. Integer Встроенные типы данных n Производные типы n Подтипы примитивов типов данных • negative. Integer • Long • • • • • int short byte non. Negative. Integer unsigned. Long unsigned. Int unsigned. Short unsigned. Byte positive. Integer • negative infinity to -1 -9223372036854775808 to 9223372036854775807 -2147483648 to 2147483647 -32768 to 32767 -127 to 128 0 to infinity 0 to 18446744073709551615 0 to 4294967295 0 to 65535 0 to 255 1 to infinity Note: следующие типы можно использовать с атрибутами: ID, IDREFS, NMTOKENS, ENTITY, and ENTITIES.

<xsd: complex. Type> или <xsd: simple. Type>? • Когда использовать элемент complex. Type или или ? • Когда использовать элемент complex. Type или simple. Type? • Используйте элемент complex. Type тогда, когда хотите определить дочерние элементы и/или атрибуты элемента • Используйте элемент simple. Type тогда, когда хотите создать новый тип который модифицирует встроенный тип данных (string, date, g. Year, etc)

Элемент с простым типом Пример. Создать декларацию элемента elevation. Декларировать элемент elevation как целое Элемент с простым типом Пример. Создать декларацию элемента elevation. Декларировать элемент elevation как целое в интервале -1290 до 29035 5240 Один из способов декларации:

Элемент с простым типом Другой способ: Определение (анонимное) simple. Type внутри элемента. Недостаток такого подхода состоит в том, что данный simple. Type нельзя использовать в других элементах.

2 2 Декларация элементов. Резюме. 1 2 3

Литература 1. XML-схема. Часть 0: пример. 2. Расширяемый язык разметки (XML) 1. 0 (вторая Литература 1. XML-схема. Часть 0: пример. 2. Расширяемый язык разметки (XML) 1. 0 (вторая редакция). 3. Пространства имен в XML 4. Язык XML - практическое введение, Александр Печерский 5. Язык XML - практическое введение. Часть 2, Александр Печерский 6. Extensible Markup Language (XML) 1. 1 (Second Edition) 7. Namespaces in XML 1. 1 (Second Edition) 8. XML Schema Part 0: Primer Second Edition 9. XML Schema Part 1: Structures Second Edition 10. XML Schema Part 2: Datatypes Second Edition Лекция 2/16