XML Schema group 元素

定义和用法

group 元素用于定义在复杂类型定义中使用的元素组。

元素信息

出现次数 无限制
父元素 schema、choice、sequence、complexType、restriction (complexContent)、extension (complexContent)
内容 annotation、all、choice、sequence

语法

<group
id=ID
name=NCName
ref=QName
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
ویژگی‌های هراتری
>
annotation?,(all|choice|sequence)?)
</group>

؟(؟ علامت تعریف شده در element group است، این element می‌تواند صفر یا یک بار ظهور کند.)

ویژگی‌ها

id

اختیاری. یک شناسه منحصر به فرد برای این element مشخص می‌کند.

name

اختیاری. نام گروه را مشخص می‌کند. این نام باید نام غیر冒سی (NCName) تعریف شده در مقررات نام‌ فضای XML باشد.

این ویژگی فقط زمانی استفاده می‌شود که element schema پدر element group باشد. در این حالت، group توسط model group استفاده می‌شود که توسط element complexType، choice و sequence استفاده می‌شود.

ویژگی name و ref نمی‌توانند به طور همزمان استفاده شوند.

ref

اختیاری. نام یک group دیگر را ارجاع می‌دهد. مقدار ref باید QName باشد. ref می‌تواند شامل پیشوند نام‌ فضای نام باشد.

ویژگی name و ref نمی‌توانند به طور همزمان استفاده شوند.

maxOccurs

اختیاری. مشخص می‌کند بیشترین تعداد ظهور element در پدر آن. این مقدار می‌تواند عدد صحیحی از صفر یا بیشتر باشد. اگر نمی‌خواهید محدودیت بیشترین تعداد ظهور را تنظیم کنید، از رشته "unbounded" استفاده کنید. مقدار پیش‌فرض یک است.

minOccurs

اختیاری. مشخص می‌کند حداقل تعداد ظهور element در پدر آن. این مقدار می‌تواند عدد صحیحی از صفر یا بیشتر باشد. مقدار پیش‌فرض یک است.

ویژگی‌های هراتری

اختیاری. مشخص می‌کند که هرگونه ویژگی غیرشبکه‌ای دارای نام‌ فضای نام دارد.

مثال

مثال 1

نماذج زیر یک مجموعه از چهار عنصر را تعریف می‌کند و از عناصر group در تعریف نوع پیچیده استفاده می‌کند:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:group name="custGroup">
 <xs:sequence>
  <xs:element name="customer" type="xs:string"/>
  <xs:element name="orderdetails" type="xs:string"/>
  <xs:element name="billto" type="xs:string"/>
  <xs:element name="shipto" type="xs:string"/>
 </xs:sequence>
</xs:group>
<xs:element name="order" type="ordertype"/>
<xs:complexType name="ordertype">
  <xs:group ref="custGroup"/>
  <xs:attribute name="status" type="xs:string"/>
</xs:complexType>
</xs:schema>