XML Tutorial/XML Schema/group
Версия от 18:22, 25 мая 2010; (обсуждение)
Defining Named Groups and Referencing a Named Group
A group defines a list of related elements that will all be used together in one or more other elements.
You can reference a group in a complex type definition, a sequence, a set of choices, an unordered group, or in other named groups.
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.wbex.ru" xmlns="http://www.wbex.ru"
elementFormDefault="qualified">
<xsd:group name="physical_traits">
<xsd:sequence>
<xsd:element name="weight" type="xsd:string" />
<xsd:element name="length" type="xsd:string" />
<xsd:element name="distinguishing" type="xsd:string" />
</xsd:sequence>
</xsd:group>
<xsd:element name="individual">
<xsd:complexType>
<xsd:group ref="physical_traits" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
<group> Declarations
<group name="name of global group">
All global <group> declarations must be named.
The basic structure of a global <group> declaration follows:
<group name="NCName"
ref="NCName"
maxOccurs="nonNegativeInteger | unbounded"
minOccurs="nonNegativeInteger"
id="ID">
Content: (annotation?, (all | choice | sequence))
</group>
<group> References
The <group> reference declaration allows you to refer to global element groups within your content model.
<group ref="global group definition"
minOccurs="non negative number"
maxOccurs="non negative number or unbounded">
This can be done by including a ref attribute and specifying the name of the global <group> declaration:
<group name="NameGroup">
<sequence>
<element name="first" type="string" minOccurs="1" maxOccurs="unbounded"/>
<element name="middle" type="string" minOccurs="0" maxOccurs="1"/>
<element name="last" type="string"/>
</sequence>
</group>
<element name="name">
<complexType>
<group ref="target:NameGroup"/>
<attribute name="title" type="string"/>
</complexType>
</element>