2.8 √руппы атрибутов

ѕредположим, что мы хотим обеспечить больше информации о каждом продукте в заказе на покупку, например, вес каждого продукта и предпочтительный метод отгрузки. ћы можем достигнуть этого, добав뤤 объ¤влени¤ атрибутов weightKg и shipBy к (анонимному) определению типа элемента item:

ƒобавление атрибутов к встроенному определению типов

<xsd:element name=ФItemФ minOccurs=Ф0Ф maxOccurs=ФunboundedФ> <xsd:complexType> <xsd:sequence> <xsd:element name=ФproductNameФ type=Фxsd:stringФ/> <xsd:element name=ФquantityФ> <xsd:simpleType> <xsd:restriction base=Фxsd:positiveIntegerФ> <xsd:maxExclusive value=Ф100Ф/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name=ФUSPriceФ type=Фxsd:decimalФ/> <xsd:element ref=ФcommentФ minOccurs=Ф0Ф/> <xsd:element name=ФshipDateФ type=Фxsd:dateФ minOccurs=Ф0Ф/> </xsd:sequence> <xsd:attribute name=ФpartNumФ type=ФSKUФ use=ФrequiredФ/> <!-- add weightKg and shipBy attributes --> <xsd:attribute name=ФweightKgФ type=Фxsd:decimalФ/> <xsd:attribute name=ФshipByФ> <xsd:simpleType> <xsd:restriction base=Фxsd:stringФ> <xsd:enumeration value=ФairФ/> <xsd:enumeration value=ФlandФ/> <xsd:enumeration value=ФanyФ/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element>

јльтернативно, мы можем создать именованную группу атрибутов, содержащую все необходимые атрибуты элемента item, и ссылатьс¤ на эту группы по имени в объ¤вление элемента item:

ƒобавление атрибутов, использу¤ группу атрибутов

<xsd:element name=ФitemФ minOccurs="0" maxOccurs=ФunboundedФ> <xsd:complexType> <xsd:sequence> <xsd:element name=ФproductNameФ type=Фxsd:stringФ/> <xsd:element name=ФquantityФ> <xsd:simpleType> <xsd:restriction base=Фxsd:positiveIntegerФ> <xsd:maxExclusive value=Ф100Ф/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name=ФUSPriceФ type=Фxsd:decimalФ/> <xsd:element ref=ФcommentФ minOccurs=Ф0Ф/> <xsd:element name=ФshipDateФ type=Фxsd:dateФ minOccurs=Ф0Ф/> </xsd:sequence> <!-- attributeGroup replaces individual declarations --> <xsd:attributeGroup ref=ФItemDeliveryФ/> </xsd:complexType> </xsd:element> <xsd:attributeGroup name=ФItemDeliveryФ> <xsd:attribute name=ФpartNumФ type=ФSKUФ use=ФrequiredФ/> <xsd:attribute name=ФweightKgФ type=Фxsd:decimalФ/> <xsd:attribute name=ФshipByФ> <xsd:simpleType> <xsd:restriction base=Фxsd:stringФ> <xsd:enumeration value=ФairФ/> <xsd:enumeration value=ФlandФ/> <xsd:enumeration value=ФanyФ/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:attributeGroup>

»спользу¤, таким образом, группу атрибутов можно улучшить читаемость схем, и облегчить изменени¤ схемы, потому что группа атрибутов может быть определена и отредактирована в одном месте, и на нее могут ссылатьс¤ в нескольких определени¤х и объ¤влени¤х. Ёти характеристики групп атрибутов делают их подобными параметрическим объектам в XML 1.0. ќтметим, что группа атрибутов может содержать другие группы атрибутов.  ак объ¤влени¤ атрибутов, так и ссылки группы атрибутов должны по¤вл¤тьс¤ в конце определений сложных типов.

 


болезнь бехтерева, лечение артрита | бойцовский клуб
африканские косички | криптографи¤
Используются технологии uCoz