Невозможно отобразить презентацию
Similar presentations:
XSD. XML Schema definition language
Delivering Excellence in Software Engineering ® 2006.
EPAM Systems.
All rights reserved.XML технологииXSD ® 2006.
EPAM Systems.
All rights reserved.
Чтотакое XML схема (XSD)?
• XML Schema definition language (XSD) внастоящее XML времястандартныйязыксхемдлядокументови.
данных
• 2 2001, World Wide Web Consortium (W3C) мая 1.0 XSD.
опубликовалверсиюстандарта
• XML Schema описываетэлементыXML документа
• ОписываетатрибутывXML
• Описываетдочерниеэлементыихпорядоки количество
• Описываеттипыданныхдляэлементовиатрибутов ® 2006.
EPAM Systems.
All rights reserved.
СозданиеXML Схемы <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.epam.com" xmlns="http://www.epam.com" elementFormDefault="qualified">...
</xs:schema> Элемент <schema>- рутовыйэлементлюбойXML схемы xmlns:xs="http://www.w3.org/2001/XMLSchema"- Объявлениепространства именXML схемыc префиксом xs (, , элементыатрибутытипыпринадлежат данному namespace) targetNamespace="http://www.epam.com"- namespace длякоторогоданнаясхема , описываетэлементыправила xmlns="http://www.epam.com" - namespace поумолчаниюдляэлементовкоторогоне надоиспользоватьпрефиксы elementFormDefault="qualified"- показываетчтовсеобъявленыеэлементыXML должныбыть namespace qualified ® 2006.
EPAM Systems.
All rights reserved.
Простыеэлементы
• <element>.
Элементыобъявляютсясиспользованиемэлемента
• .
Простойэлементможетсодержатьтолькотекст
• .
Простойэлементнеможетсодержатьатрибутов
• ( Объявляетсяпростымтипомбазовымтипомилиновымтипомс расширениемилиограничениембазовоготипа c помощью simpleType).
элемента <xs:element name="age" type="xs:string"> <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Объявлениеатрибутов <attribute>.
Атрибутыобъявляютсясиспользованиемэлемента Какипростойэлементатрибутвсегдаобъявляетсяпростымтипом <xs:attribute name="lang" type="xs:string"/> <lastname lang="EN">Smith</lastname> Дляатрибутаможноопределитьзначениепоумолчаниюилификсированное значение <xs:attribute name="lang" type="xs:string" default="EN"/> <xs:attribute name="lang" type="xs:string" fixed="EN"/> ( Можноявноопределитьатрибутобязательнымпоумолчанию optional) <xs:attribute name="lang" type="xs:string" use="optional"/> <xs:attribute name="lang" type="xs:string" use="required"/> ® 2006.
EPAM Systems.
All rights reserved.
( Простойтип simple type) simpleType элементопределяетпростойтипииспользуетсядляобъявления простыхэлементовиатрибутовнакладываяограниченияилирасширенияна .
простыетипы <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> Описанэлемент "age" 0 100 которыйможетиметьчисловыезначенияотдо.
включительно <age>101</age> - невалидный ® 2006.
EPAM Systems.
All rights reserved.
( Составнойтип complex type) Составнойтипописываеттипэлементасодержащегодругиеэлементыи/ или.
атрибуты Составнойтипописываетсяспомощьюэлемента complexType <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
simpleContent элемент Длярасширения/ ограничениясоставноготипакоторыйможетсодержатьтолько тексткакзначениеиспользуетсяэлемент simpleContent.
.
Используетсядлядобавленияатрибутов <xsd:element name="shoesize"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:integer"> <xsd:attribute name="country" type="xsd:string" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> ® 2006.
EPAM Systems.
All rights reserved.
complexContent элемент ® 2006.
EPAM Systems.
All rights reserved.
Объявлениетипов
• Типыдляэлементов / ( атрибутовмогутобъявлятьсякаклокальновтеле ) , элементатакиглобальнокакподэлемент schema .
элемента
• Дляглобальногообъявления ( втипе simpleType, complexType) определяется атрибут name.
Такпредыдущиепримерыможнопереписатькак: <xs:simpleType name=“newType”> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:complexType name=“compType”> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name=“age” type=“newType”/> <xs:element name="note“ type=“compType ”/> ® 2006.
EPAM Systems.
All rights reserved.
Использованиеэлементовиатрибутов , Элементыиатрибутымогутбытьобъявленыкаквтеледругогоэлемента, локальнотакиглобальновначаледокументасвозможностьюссылкина , неговвдругихэлементахсхемыиспользуя атрибут ref.
<xs:attribute name="blue" /> <xs:complexType name="eyeColorType"> <xs:attribute ref="blue"/> <xs:attribute name="light" /> </xs:complexType> <xs:element name="eyeColor" type="eyeColorType" /> <xs:element name="Catalog"> <xs:complexType> <xs:element ref="eyeColor"> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Базовыетипы XML schema 44 содержитбазовыхтипаобщиеизкоторых:
• string
• decimal
• integer
• boolean
• date
• time ® 2006.
EPAM Systems.
All rights reserved.
( Ограничения Restrictions) Ограничения предназначеныдляконтролявозможныхзначений элементовиатрибутов XML.
Элемент ограничения Описание Enumeration Определяетодноизвозможныхзначений fractionDigits ( Задаетколичествознаковпослезапятой >=0) length ( Задаетколичествосимволов >=0) maxExclusive .
Определяетмаксимальноечисловоезначение maxInclusive .
Определяетмаксимальноечисловоезначениевключительно maxLength ( Задаетмаксимальноеколичествосимволов >=0) minExclusive .
Определяетменьшеечисловоезначение minInclusive .
Определяетменьшеечисловоезначениевключительно minLength .
Задаетминимальноеколичествосимволов pattern Определяетпорядокинаборвозможныхсимволов totalDigits Показываетколичествоцифр whiteSpace Определяетработус white spaces (line feeds, tabs, spaces, and carriage returns) ® 2006.
EPAM Systems.
All rights reserved.
Ограниченияназначения Ограничениеназначение 0 <= age <= 100 <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> Ограничениеспискомвозможныхзначений <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Ограничениеспомощьюшаблона Значениеэлемента letter можетбытьодинсимволнижнегорегистраот “a” до “z” <xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element> 3 Ограничениесимволамиверхнегорегистраот “a” до “z” <xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Ограничениеспомощьюшаблона 3 Ограничениесимволамилюбогорегистраот “a” до “z” <xs:pattern value=" [a-zA-Z][a-zA-Z][a-zA-Z]"/> Ограничениеоднимсимволомизтрехвозможныхxyz <xs:pattern value=" [xyz]"/> 5- 0 9 Ограничениечислаюцифрамиотдо <xs:restriction base="xs:integer"> <xs:pattern value=" [0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> Строкаможетсодержать>=0 символовнижнегорегистраот “a” до “z” <xs:pattern value=" ([a-z])*"/> Валидноезначениеможетсодержатьдвачередующихсярегистрамисимвола 1 которыемогутповторятсяибольшераз <xs:pattern value=" ([a-z][A-Z])+"/> Шаблондлявозможныхвариантовзначения <xs:pattern value=" male|female"/> 8 Значениедолжносодержатьсимволовлибоцифрлибобукв <xs:pattern value=" [a-zA-Z0-9]{8}"/> ® 2006.
EPAM Systems.
All rights reserved.
Ограниченияна white space White space ограничениеможетприниматьтризначения “preserve”, “replace”, “collapse” <xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
• “preserve” – , оставляетвсепробелысимволытабуляцииипустой строкикакониесть
• “replace” - заменяетвсе white space напробел
• “collapse” - удаляетвсепробелыспередиисзадиизаменяетвсе white space .
наодиночныепробелы ® 2006.
EPAM Systems.
All rights reserved.
Ограничениенадлину 8 Значениедолжносодержатьсимволов <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> Спомощью minLengthи maxLength можнозадатьмаксимальноеи минимальноеколичествосимволоввзначении <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
( Индикаторы Indicators)В XML Schema 7 - существуютэлементовиндикаторовкоторые задаютповедениеэлементовиатрибутоввXML Индикаторыпорядка:•All
• Choice
• Sequence Индикаторывхождения:
• maxOccurs
• minOccurs Индикаторыгруп:
• Group name
• attributeGroup name ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыпорядка <all> показываетчтоэлементымогутследоватьвлюбомпорядке <xs:element name="person"> <xs:complexType> <xs:all> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:all> </xs:complexType> </xs:element> <choice> элементопределяетчтотолькоодинизпредставленныхэлементов можетбытьпредставлен <xs:element name="person"> <xs:complexType> <xs:choice> <xs:element name="employee" type="employee"/> <xs:element name="member" type="member"/> </xs:choice> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыпорядка <sequence> индикаторуказываетчтоэлементыдолжныследоватьвзаданном порядке <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторывхождения .
Индикаторывхожденияпоказываютколичествовхожденийэлемента Еслииндикаторвхождениянеуказантопоумолчаниюэлементдолженбыть представленвродительскомэлементе XML (..
толькоодинразтепоумолчанию minOccurs= maxOccurs=1) <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxOccurs="10"/> </xs:sequence> </xs:complexType> </xs:element> Элемент <child_name> долженследоватьза <full_name> иможетбыть 1 ( представленминимум minOccurs=1) 10 .
имаксимумраз ® 2006.
EPAM Systems.
All rights reserved.
Индикаторывхождения maxOccurs 1, можетиметьминимальное значениеа minOccurs 0 значение Дляуказаниялюбогоколичествавхожденийставим maxOccurs=“unbounded” <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string” maxOccurs="10" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> Элемент <child_name> можетотсутствоватьлибодолженследоватьза <full_name> 10 .
вколичествемаксимумраз ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыгруп (group элемент) Индикаторыгрупобявляютсвязанныенаборыэлементовилиатрибутовдля .
последующейссылкинанихвэлементесхемы <xs:group name="persongroup"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> </xs:sequence> </xs:group> <xs:complexType name="personinfo"> <xs:sequence> <xs:group ref="persongroup"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="person" type="personinfo" /> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыгруп (attributeGroup элемент) attributeGroup используетсятакжекаки <group> <xs:attributeGroup name="personattrgroup"> <xs:attribute name="firstname" type="xs:string"/> <xs:attribute name="lastname" type="xs:string"/> <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup> <xs:element name="person"> <xs:complexType> <xs:attributeGroup ref="personattrgroup"/> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Использованиесодержимогодругихсхем
• <any> Элементиспользуетсядлядобавленияэлементаиздругого .
пространстваимен
• <any> <complexType>, <group>, Элементможетбытьдочернимдля <sequence>, <all> <choice>.
или <xs:element name="catalog"> <xs:complexType> <xs:any namespace="http://www.fabrikam.com/catalog" minOccurs="0" maxOccurs="unbounded" processContents="skip" /> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Документированиесхем XML .
Можноиспользоватьобычныекомментарии <!-- This is a comment --> .
Аннотациимогутпоявлятьсявездевсхеме <annotation> element - <appinfo> <documentation>.
родительскимдляи <appinfo> element - .
предоставляетинформациюдлявнешнихприложений <documentation> element - .
позволяетразмещатькомментариидляразработчиков <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:appinfo>Schema for processing submitted applications</xs:appinfo> <xs:documentation>Submitted applications for Human Resources department</xs:documentation> </xs:annotation> </xs:schema> <xs:element name="relocationStatus"> <xs:complexType> <xs:annotation> <xs:appinfo>If relocationStatus is Seattle, no further processing for relocationStatus is required.</xs:appinfo> <xs:documentation>This element is for determining relocation status to determine help determine costs.</xs:documentation> </xs:annotation> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
ОписаниессылкинаXSDвXML <?xml version="1.0"?> <note xmlns="http://www.epam.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.epam.com note.xsd"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
• xmlns="http://www.epam.com"- пространствоименпоумолчанию
• xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"- пространствоимен экземплярасхемыоднимизименвкоторомявляется schemaLocation атрибут
• xsi:schemaLocation="http://www.epam.com note.xsd"- определяеткакой ( ) схемепространствуименсоответствуетданныйXML игденаходитсясхема длявалидацииданногоXML ® 2006.
EPAM Systems.
All rights reserved.
ОписаниессылкинаXSDвXML xsi:noNamespaceSchemaLocation , используетсякогдапространства именне XML используютсявсодержимомдокумента <catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <book xsi:noNamespaceSchemaLocation="http://www.example.com/MyData.xsd" id="bk101"> <title>Presenting XML</title> <author>Richard Light</author> </book> </catalog> Web , URL .
Еслисервернедоступенможноиспользоватьфайловойсистемы xsi:noNamespaceSchemaLocation=" file://C://Documents and Settings//All Users//Application Data//My Application//MyData.xsd" xsi:schemaLocation , используетсякогдапрефиксыпространств именявно XML .
определеныииспользуютсяввалидируемомдокументе <catalog xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation="urn:MyData http://www.example.com/MyData.xsd> <MyData:book xmlns:data="urn:MyData"> <MyData:title>Presenting XML</MyData:title> <MyData:author>Richard Light</MyData:author> </MyData:book> </catalog> ® 2006.
EPAM Systems.
All rights reserved.
Валидация
• – XML Валидацияэтопроцесссравнения .
документассоответствующейсхемой XML Еслидокументудовлетворяетвсем ,
EPAM Systems.
All rights reserved.XML технологииXSD ® 2006.
EPAM Systems.
All rights reserved.
Чтотакое XML схема (XSD)?
• XML Schema definition language (XSD) внастоящее XML времястандартныйязыксхемдлядокументови.
данных
• 2 2001, World Wide Web Consortium (W3C) мая 1.0 XSD.
опубликовалверсиюстандарта
• XML Schema описываетэлементыXML документа
• ОписываетатрибутывXML
• Описываетдочерниеэлементыихпорядоки количество
• Описываеттипыданныхдляэлементовиатрибутов ® 2006.
EPAM Systems.
All rights reserved.
СозданиеXML Схемы <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.epam.com" xmlns="http://www.epam.com" elementFormDefault="qualified">...
</xs:schema> Элемент <schema>- рутовыйэлементлюбойXML схемы xmlns:xs="http://www.w3.org/2001/XMLSchema"- Объявлениепространства именXML схемыc префиксом xs (, , элементыатрибутытипыпринадлежат данному namespace) targetNamespace="http://www.epam.com"- namespace длякоторогоданнаясхема , описываетэлементыправила xmlns="http://www.epam.com" - namespace поумолчаниюдляэлементовкоторогоне надоиспользоватьпрефиксы elementFormDefault="qualified"- показываетчтовсеобъявленыеэлементыXML должныбыть namespace qualified ® 2006.
EPAM Systems.
All rights reserved.
Простыеэлементы
• <element>.
Элементыобъявляютсясиспользованиемэлемента
• .
Простойэлементможетсодержатьтолькотекст
• .
Простойэлементнеможетсодержатьатрибутов
• ( Объявляетсяпростымтипомбазовымтипомилиновымтипомс расширениемилиограничениембазовоготипа c помощью simpleType).
элемента <xs:element name="age" type="xs:string"> <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Объявлениеатрибутов <attribute>.
Атрибутыобъявляютсясиспользованиемэлемента Какипростойэлементатрибутвсегдаобъявляетсяпростымтипом <xs:attribute name="lang" type="xs:string"/> <lastname lang="EN">Smith</lastname> Дляатрибутаможноопределитьзначениепоумолчаниюилификсированное значение <xs:attribute name="lang" type="xs:string" default="EN"/> <xs:attribute name="lang" type="xs:string" fixed="EN"/> ( Можноявноопределитьатрибутобязательнымпоумолчанию optional) <xs:attribute name="lang" type="xs:string" use="optional"/> <xs:attribute name="lang" type="xs:string" use="required"/> ® 2006.
EPAM Systems.
All rights reserved.
( Простойтип simple type) simpleType элементопределяетпростойтипииспользуетсядляобъявления простыхэлементовиатрибутовнакладываяограниченияилирасширенияна .
простыетипы <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> Описанэлемент "age" 0 100 которыйможетиметьчисловыезначенияотдо.
включительно <age>101</age> - невалидный ® 2006.
EPAM Systems.
All rights reserved.
( Составнойтип complex type) Составнойтипописываеттипэлементасодержащегодругиеэлементыи/ или.
атрибуты Составнойтипописываетсяспомощьюэлемента complexType <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
simpleContent элемент Длярасширения/ ограничениясоставноготипакоторыйможетсодержатьтолько тексткакзначениеиспользуетсяэлемент simpleContent.
.
Используетсядлядобавленияатрибутов <xsd:element name="shoesize"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:integer"> <xsd:attribute name="country" type="xsd:string" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> ® 2006.
EPAM Systems.
All rights reserved.
complexContent элемент ® 2006.
EPAM Systems.
All rights reserved.
Объявлениетипов
• Типыдляэлементов / ( атрибутовмогутобъявлятьсякаклокальновтеле ) , элементатакиглобальнокакподэлемент schema .
элемента
• Дляглобальногообъявления ( втипе simpleType, complexType) определяется атрибут name.
Такпредыдущиепримерыможнопереписатькак: <xs:simpleType name=“newType”> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:complexType name=“compType”> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name=“age” type=“newType”/> <xs:element name="note“ type=“compType ”/> ® 2006.
EPAM Systems.
All rights reserved.
Использованиеэлементовиатрибутов , Элементыиатрибутымогутбытьобъявленыкаквтеледругогоэлемента, локальнотакиглобальновначаледокументасвозможностьюссылкина , неговвдругихэлементахсхемыиспользуя атрибут ref.
<xs:attribute name="blue" /> <xs:complexType name="eyeColorType"> <xs:attribute ref="blue"/> <xs:attribute name="light" /> </xs:complexType> <xs:element name="eyeColor" type="eyeColorType" /> <xs:element name="Catalog"> <xs:complexType> <xs:element ref="eyeColor"> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Базовыетипы XML schema 44 содержитбазовыхтипаобщиеизкоторых:
• string
• decimal
• integer
• boolean
• date
• time ® 2006.
EPAM Systems.
All rights reserved.
( Ограничения Restrictions) Ограничения предназначеныдляконтролявозможныхзначений элементовиатрибутов XML.
Элемент ограничения Описание Enumeration Определяетодноизвозможныхзначений fractionDigits ( Задаетколичествознаковпослезапятой >=0) length ( Задаетколичествосимволов >=0) maxExclusive .
Определяетмаксимальноечисловоезначение maxInclusive .
Определяетмаксимальноечисловоезначениевключительно maxLength ( Задаетмаксимальноеколичествосимволов >=0) minExclusive .
Определяетменьшеечисловоезначение minInclusive .
Определяетменьшеечисловоезначениевключительно minLength .
Задаетминимальноеколичествосимволов pattern Определяетпорядокинаборвозможныхсимволов totalDigits Показываетколичествоцифр whiteSpace Определяетработус white spaces (line feeds, tabs, spaces, and carriage returns) ® 2006.
EPAM Systems.
All rights reserved.
Ограниченияназначения Ограничениеназначение 0 <= age <= 100 <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element> Ограничениеспискомвозможныхзначений <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Ограничениеспомощьюшаблона Значениеэлемента letter можетбытьодинсимволнижнегорегистраот “a” до “z” <xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element> 3 Ограничениесимволамиверхнегорегистраот “a” до “z” <xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Ограничениеспомощьюшаблона 3 Ограничениесимволамилюбогорегистраот “a” до “z” <xs:pattern value=" [a-zA-Z][a-zA-Z][a-zA-Z]"/> Ограничениеоднимсимволомизтрехвозможныхxyz <xs:pattern value=" [xyz]"/> 5- 0 9 Ограничениечислаюцифрамиотдо <xs:restriction base="xs:integer"> <xs:pattern value=" [0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> Строкаможетсодержать>=0 символовнижнегорегистраот “a” до “z” <xs:pattern value=" ([a-z])*"/> Валидноезначениеможетсодержатьдвачередующихсярегистрамисимвола 1 которыемогутповторятсяибольшераз <xs:pattern value=" ([a-z][A-Z])+"/> Шаблондлявозможныхвариантовзначения <xs:pattern value=" male|female"/> 8 Значениедолжносодержатьсимволовлибоцифрлибобукв <xs:pattern value=" [a-zA-Z0-9]{8}"/> ® 2006.
EPAM Systems.
All rights reserved.
Ограниченияна white space White space ограничениеможетприниматьтризначения “preserve”, “replace”, “collapse” <xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
• “preserve” – , оставляетвсепробелысимволытабуляцииипустой строкикакониесть
• “replace” - заменяетвсе white space напробел
• “collapse” - удаляетвсепробелыспередиисзадиизаменяетвсе white space .
наодиночныепробелы ® 2006.
EPAM Systems.
All rights reserved.
Ограничениенадлину 8 Значениедолжносодержатьсимволов <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element> Спомощью minLengthи maxLength можнозадатьмаксимальноеи минимальноеколичествосимволоввзначении <xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
( Индикаторы Indicators)В XML Schema 7 - существуютэлементовиндикаторовкоторые задаютповедениеэлементовиатрибутоввXML Индикаторыпорядка:•All
• Choice
• Sequence Индикаторывхождения:
• maxOccurs
• minOccurs Индикаторыгруп:
• Group name
• attributeGroup name ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыпорядка <all> показываетчтоэлементымогутследоватьвлюбомпорядке <xs:element name="person"> <xs:complexType> <xs:all> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:all> </xs:complexType> </xs:element> <choice> элементопределяетчтотолькоодинизпредставленныхэлементов можетбытьпредставлен <xs:element name="person"> <xs:complexType> <xs:choice> <xs:element name="employee" type="employee"/> <xs:element name="member" type="member"/> </xs:choice> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыпорядка <sequence> индикаторуказываетчтоэлементыдолжныследоватьвзаданном порядке <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторывхождения .
Индикаторывхожденияпоказываютколичествовхожденийэлемента Еслииндикаторвхождениянеуказантопоумолчаниюэлементдолженбыть представленвродительскомэлементе XML (..
толькоодинразтепоумолчанию minOccurs= maxOccurs=1) <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxOccurs="10"/> </xs:sequence> </xs:complexType> </xs:element> Элемент <child_name> долженследоватьза <full_name> иможетбыть 1 ( представленминимум minOccurs=1) 10 .
имаксимумраз ® 2006.
EPAM Systems.
All rights reserved.
Индикаторывхождения maxOccurs 1, можетиметьминимальное значениеа minOccurs 0 значение Дляуказаниялюбогоколичествавхожденийставим maxOccurs=“unbounded” <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string” maxOccurs="10" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> Элемент <child_name> можетотсутствоватьлибодолженследоватьза <full_name> 10 .
вколичествемаксимумраз ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыгруп (group элемент) Индикаторыгрупобявляютсвязанныенаборыэлементовилиатрибутовдля .
последующейссылкинанихвэлементесхемы <xs:group name="persongroup"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> </xs:sequence> </xs:group> <xs:complexType name="personinfo"> <xs:sequence> <xs:group ref="persongroup"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="person" type="personinfo" /> ® 2006.
EPAM Systems.
All rights reserved.
Индикаторыгруп (attributeGroup элемент) attributeGroup используетсятакжекаки <group> <xs:attributeGroup name="personattrgroup"> <xs:attribute name="firstname" type="xs:string"/> <xs:attribute name="lastname" type="xs:string"/> <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup> <xs:element name="person"> <xs:complexType> <xs:attributeGroup ref="personattrgroup"/> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Использованиесодержимогодругихсхем
• <any> Элементиспользуетсядлядобавленияэлементаиздругого .
пространстваимен
• <any> <complexType>, <group>, Элементможетбытьдочернимдля <sequence>, <all> <choice>.
или <xs:element name="catalog"> <xs:complexType> <xs:any namespace="http://www.fabrikam.com/catalog" minOccurs="0" maxOccurs="unbounded" processContents="skip" /> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
Документированиесхем XML .
Можноиспользоватьобычныекомментарии <!-- This is a comment --> .
Аннотациимогутпоявлятьсявездевсхеме <annotation> element - <appinfo> <documentation>.
родительскимдляи <appinfo> element - .
предоставляетинформациюдлявнешнихприложений <documentation> element - .
позволяетразмещатькомментариидляразработчиков <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:appinfo>Schema for processing submitted applications</xs:appinfo> <xs:documentation>Submitted applications for Human Resources department</xs:documentation> </xs:annotation> </xs:schema> <xs:element name="relocationStatus"> <xs:complexType> <xs:annotation> <xs:appinfo>If relocationStatus is Seattle, no further processing for relocationStatus is required.</xs:appinfo> <xs:documentation>This element is for determining relocation status to determine help determine costs.</xs:documentation> </xs:annotation> </xs:complexType> </xs:element> ® 2006.
EPAM Systems.
All rights reserved.
ОписаниессылкинаXSDвXML <?xml version="1.0"?> <note xmlns="http://www.epam.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.epam.com note.xsd"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
• xmlns="http://www.epam.com"- пространствоименпоумолчанию
• xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"- пространствоимен экземплярасхемыоднимизименвкоторомявляется schemaLocation атрибут
• xsi:schemaLocation="http://www.epam.com note.xsd"- определяеткакой ( ) схемепространствуименсоответствуетданныйXML игденаходитсясхема длявалидацииданногоXML ® 2006.
EPAM Systems.
All rights reserved.
ОписаниессылкинаXSDвXML xsi:noNamespaceSchemaLocation , используетсякогдапространства именне XML используютсявсодержимомдокумента <catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <book xsi:noNamespaceSchemaLocation="http://www.example.com/MyData.xsd" id="bk101"> <title>Presenting XML</title> <author>Richard Light</author> </book> </catalog> Web , URL .
Еслисервернедоступенможноиспользоватьфайловойсистемы xsi:noNamespaceSchemaLocation=" file://C://Documents and Settings//All Users//Application Data//My Application//MyData.xsd" xsi:schemaLocation , используетсякогдапрефиксыпространств именявно XML .
определеныииспользуютсяввалидируемомдокументе <catalog xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation="urn:MyData http://www.example.com/MyData.xsd> <MyData:book xmlns:data="urn:MyData"> <MyData:title>Presenting XML</MyData:title> <MyData:author>Richard Light</MyData:author> </MyData:book> </catalog> ® 2006.
EPAM Systems.
All rights reserved.
Валидация
• – XML Валидацияэтопроцесссравнения .
документассоответствующейсхемой XML Еслидокументудовлетворяетвсем ,
programming