utorok 17. júla 2012

Definovanie znovupoužiteľnej attributeGroup v XML Schema

V XML schéme môžete nastaviť skupinu atribútov, ktorá zdieľa spoločnú sadu atribútov s ľubovoľným počtom elementov. Napríklad, môžete chcieť zahrnúť atribúty id, dátum vytvorenia a dátum revízie do všetkých hlavných prvkov v dátovej množine.

Tento kurz začneme tým, že nastavíme attributeGroup takto:

<xsd:attributeGroup name="attlist-idgroup">
<xsd:attribute name="id" use="required" type="xsd:ID"/>
<xsd:attribute name="creation-date"/>
<xsd:attribute name="revision-date"/>
</xsd:attributeGroup>

Táto skupina definuje "id" podľa požiadaviek typu "xsd: ID". Atribúty creation-date a revision-date nemajú ďalšie definície, preto ich východisková hodnota bude typu reťazec.

Túto skupinu atribútov môžete pridať k elementu takto:

<xsd:element name="article">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="articleContent">
<xsd:attributeGroup ref="attlist-idgroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>

Tento príklad predpokladá, preddefinovaný complexType s názvom "articleContent". Ten potom využíva <xsd:extension> na volanie "articleContent" a pridáva k nemu skupinu atribútov "attlist-idgroup". Túto metódu môžete použiť rovnako na každý element, ktorý potrebujú používať túto attributeGroup.

Skupinu atribútov attributeGroup môžete pridať priamo aj do modelu obsahu daného elementu:

<xsd:element name="appendix">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="title"/>
<xsd:element ref="para" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="attlist-idgroup"/>
</xsd:complexType>
</xsd:element>

Týmto spôsobom môžete jednoducho definovať sekvencie, ktoré nasledujú po attributeGroup. Skupinu attributeGroups  môžete pridať tam, kde sú použité samostatne definované atribúty.