4.1 —хема в нескольких документах

ѕоскольку схемы станов¤тс¤ все более крупными, часто желательно делить их содержание на нескольких документов схемы, что облегчает их обслуживание, управление доступом, и удобочитаемость. ѕо этим причинам мы вз¤ли конструкции схемы, св¤занные с адресами из po.xsd, и поместили их в новом файле, который называетс¤address.xsd. ћодифицированный файл схемы счета на покупку назван ipo.xsd:

—хема международного счета на покупку, ipo.xsd

<schema targetNamespace=Фhttp://www.example.com/IPOФ xmlns=Фhttp://www.w3.org/2001/XMLSchemaФ xmlns:ipo=Фhttp://www.example.com/IPOФ> <annotation> <documentation xml:lang=ФenФ> International Purchase order schema for Example.com Copyright 2000 Example.com. All rights reserved. </documentation> </annotation> <!-- include address constructs --> <include schemaLocation=Фhttp://www.example.com/schemas/address.xsdФ/> <element name=ФpurchaseOrderФ type=Фipo:PurchaseOrderTypeФ/> <element name=ФcommentФ type=ФstringФ/> <complexType name=ФPurchaseOrderTypeФ> <sequence> <element name=ФshipToФ type=Фipo:AddressФ/> <element name=ФbillToФ type=Фipo:AddressФ/> <element ref=Фipo:commentФ minOccurs=Ф0Ф/> <element name=ФitemsФ type=Фipo:ItemsФ/> </sequence> <attribute name=ФorderDateФ type=ФdateФ/> </complexType> <complexType name=ФItemsФ> <sequence> <element name=ФitemФ minOccurs=Ф0Ф maxOccurs=ФunboundedФ> <complexType> <sequence> <element name=ФproductNameФ type=ФstringФ/> <element name=ФquantityФ> <simpleType> <restriction base=ФpositiveIntegerФ> <maxExclusive value=Ф100Ф/> </restriction> </simpleType> </element> <element name=ФUSPriceФ type=ФdecimalФ/> <element ref=Фipo:commentФ minOccurs=Ф0Ф/> <element name=ФshipDateФ type=ФdateФ minOccurs=Ф0Ф/> </sequence> <attribute name=ФpartNumФ type=Фipo:SKUФ use=ФrequiredФ/> </complexType> </element> </sequence> </complexType> <simpleType name=ФSKUФ> <restriction base=ФstringФ> <pattern value=Ф\d{3}-[A-Z]{2}Ф/> </restriction> </simpleType> </schema>

‘айл, содержащий конструкции адреса, представлен ниже:

јдреса дл¤ схемы международного счета на покупку, address.xsd

<schema targetNamespace=Фhttp://www.example.com/IPOФ xmlns=Фhttp://www.w3.org/2001/XMLSchemaФ xmlns:ipo=Фhttp://www.example.com/IPOФ> <annotation> <documentation xml:lang=ФenФ> Addresses for International Purchase order schema Copyright 2000 Example.com. All rights reserved. </documentation> </annotation> <complexType name=ФAddressФ> <sequence> <element name=ФnameФ type=ФstringФ/> <element name=ФstreetФ type=ФstringФ/> <element name=ФcityФ type=ФstringФ/> </sequence> </complexType> <complexType name=ФUSAddressФ> <complexContent> <extension base=Фipo:AddressФ> <sequence> <element name=ФstateФ type=Фipo:USStateФ/> <element name=ФzipФ type=ФpositiveIntegerФ/> </sequence> </extension> </complexContent> </complexType>< <complexType name=ФUKAddressФ> <complexContent> <extension base=Фipo:AddressФ> <sequence> <element name=ФpostcodeФ type=Фipo:UKPostcodeФ/> </sequence> <attribute name=ФexportCodeФ type=ФpositiveIntegerФ fixed=Ф1Ф/> </extension> </complexContent> </complexType> <!-- other Address derivations for more countries --> <simpleType name=ФUSStateФ> <restriction base=ФstringФ> <enumeration value=ФAKФ/> <enumeration value=ФALФ/> <enumeration value=ФARФ/> <!-- and so on ... --> </restriction> </simpleType> <!-- simple type definition for UKPostcode --> <</schema>

—чет на покупку и конструкции адреса теперь содержатс¤ в двух файлах схемы, ipo.xsd и address.xsd. ƒл¤ того, чтобы представить эти конструкции как часть схемы международного счета на покупку, или другими словами, включить их в пространство имен международного счета на покупку, ipo.xsd содержит элемент include,:

<include schemaLocation=Фhttp://www.example.com/schemas/address.xsdФ/>

Ёффект данного элемента include заключаетс¤ в том, что определени¤ и объ¤влени¤, которые содержатс¤ в address.xsd, будут доступными как часть схемы целевого пространства имен международного счета на покупку. ќдно важное предостережение относительно использовани¤ include. ÷елевое пространство имен включенных компонент должно быть тем же самым, что и целевое пространство имен в схеме, в данном случае - http://www.example.com/IPO.»спользование механизма include дл¤ привносимых из вне определений и объ¤влений позвол¤ет эффективно добавить эти компоненты к существующему целевому пространству имен. ¬ –азделе 4.5, мы опишем подобный механизм, который дает возможность ¬ам изменить некоторые компоненты, когда они уже введены.

¬ нашем примере, мы показали только один включающий документ и один включаемый документ. –еально можно включать больше чем один документ, использу¤ несколько элементов include, и документы могут включать документы, которые сами включают другие документы. ќднако вложение документов таким способом ¤вл¤етс¤ корректным, только если все включенные части схемы объ¤влены с одним и тем же целевым пространством имен.

ƒокументы примера, соответствующие схеме, определени¤ которой охватывают несколько схем, нуждаютс¤ только в ссылке на 'самый верхний' документ и общее пространство имен. —обрать вместе все определени¤, указанные в различных включенных документах, это задача обработчика. ¬ нашем примере выше,документ примера ipo.xml (см. –аздел 4.3) ссылаетс¤ только на общее целевоепространство имен, http://www.example.com/IPO, и (косвенно) один файл схемы http://www.example.com/schemas/ipo.xsd. ќбработчик несет ответственность за получение файла схемы address.xsd.

¬ –азделе 5.4 мы опишем, как схемы могут быть использованы дл¤ проверки правильности содержани¤ более чем одного пространства имен.

 


Ѕиблиотека ѕрироды - товары дл¤ здоровь¤ (Ѕјƒ): интернет-магазин '“овары почтой' (более 3000 наименований товаров дл¤ здоровь¤ и красоты: Ѕережник, Ѕерегин¤, ƒепрекан, Ћимфовит), каталог лекарственных растений, консультации специалиста, медицинска¤ энциклопеди¤.

—айт футбольной команды города —очи, общение фанатов в гостевой книге и на форуме ‘  —очи-04
Ѕиблиотека D. - ќбозрени¤ интернет-библиотек.
Ќастольный компьютер
ћебель - сделай сам
 омпьютерна¤ помощь
http://www.uinshop.com/
Используются технологии uCoz