Elementi ya XML Schema

Inakadiri na uendeshaji

element ya kwanza inaangaliwa kwa upokezaji.

Maelfu ya upokezaji

Tukio wa kila mara Inaangaliwa ya kina ambako upokezaji wa kawaida ulinwe kwenye mawili.
Upokezaji wa mmoja schema、choice、all、sequence
Muhtasari simpleType、complexType、key、keyref、unique

Lingua ya kurejea

<element
id=ID 
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
nillable=true|false
abstract=true|false 
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? simboli inaangaliwa katika element ya kwanza, element hii inaweza kusababisha ya kawaida au mara moja, * simboli inaangaliwa mara moja au mara nyingi.).

Mwongozo

id

Inafikia. Inakadiri ID pekee wa upokezaji.

name

Inafikia. Inakadiri jina la upokezaji. Haukutumiwa kama uangali hauwezi kusababisha ukweli.

ref

Inafikia. Inakadiri mbinu yenye upokezaji. ref uangali inaweza kuhusiana na mbinu yenye nafasi ya kwanza. Haukutumiwa kama uangali hauwezi kusababisha ukweli.

type

Inafikia. Inakadiri jina la aina ya data yenye msingi, au inakadiri jina la upokezaji simpleType au complexType.

substitutionGroup

Inafikia. Inakadiri jina la upokezaji ambao unaweza kutumiwa kuanzia upokezaji huo. Upokezaji huo lazima unaweze kusababisha aina yoyote ambayo inaangaliwa au iweze kutokea kutoka kwa aina iliyotumika.

Hakuna inaingia hata kama upokezaji wa ukweli hauwezi kutumika kwa sababu ya hii uangali.

default

Inafikia. Inakadiri uangali wa kawaida (inaaminika ukilingana na upokezaji wa aina msingi au textOnly).

fixed

Inafikia. Inakadiri uangali wa upokezaji (inaaminika ukilingana na upokezaji wa aina msingi au textOnly).

form

可选。该元素的形式。 默认值是包含该属性的 schema 元素的 elementFormDefault 属性的值。 该值必须是下列字符串之一: “qualified” 或 “unqualified”。

如果父元素是 schema 元素,则不能使用该属性。

  • 如果该值是 “unqualified”,则无须通过命名空间前缀限定该元素。
  • 如果该值是 “qualified”,则必须通过命名空间前缀限定该元素。

maxOccurs

可选。规定 element 元素在父元素中可出现的最大次数。该值可以是大于或等于零的整数。若不想对最大次数设置任何限制,请使用字符串 "unbounded"。 默认值为 1。

如果父元素是 schema 元素,则不能使用该属性。

minOccurs

可选。规定 element 元素在父元素中可出现的最小次数。该值可以是大于或等于零的整数。默认值为 1。

如果父元素是 schema 元素,则不能使用该属性。

nillable

可选。指示是否可以将显式的零值分配给该元素。此项应用于元素内容并且不是该元素的属性。 默认值为 false。

如果 nillable 为 true,将使该元素的实例可以将 nil 属性设置为 true。 nil 属性被定义为实例的 XML 架构命名空间的一部分。

例如,下段定义了单个元素,同时将 nillable 设置为 true。


下段使用该元素并具有显式零值(nil 属性设置为 true)。


abstract

可选。指示元素是否可以在实例文档中使用。如果该值为 true,则元素不能出现在实例文档中。 相反,substitutionGroup 属性包含该元素的限定名 (QName) 的其他元素必须出现在该元素的位置。多个元素可以在其 substitutionGroup 属性中引用该元素。默认值是 false。

block

可选。派生的类型。 block 属性防止具有指定派生类型的元素被用于替代该元素。该值可以包含 #all 或者一个列表,该列表是 extension、restriction 或 substitution 的子集:

  • extension - 防止通过扩展派生的元素被用来替代该元素。
  • restriction - 防止通过限制派生的元素被用来替代该元素。
  • substitution - 防止通过替换派生的元素被用来替代该元素。
  • #all - Inakwapa kila elementi ya kusambaa kuingia kwa element hii

final

Inayowezekana. Inakadiriwa kwa kiwango cha kina cha element ya final. Ikiwa kina hiki si element ya schema, hii ya kwadhaifu inakutumiwa. Kiwango hiki kinaweza kuwa #all au orodha, inayotumika kwa kusababisha kusambaa kuingia kwa extension au restriction:

  • extension - Inakwapa kila elementi ya kusambaa kuingia kwa element hii kwa kugusia kufikia
  • restriction - Inakwapa kila elementi ya kusambaa kuingia kwa element hii kwa kugusia kikataa
  • #all - Inakwapa kila elementi ya kusambaa kuingia kwa element hii

any attributes

Inayowezekana. Inakadiriwa kwa kiwango cha kina cha namna ya schema yoyote.

Mfano

Maelezo 1

Maelezo hii ni schema iliyohusisha elementi nne za uharibifu: "fname", "lname", "age" na "dateborn", jina jipya ni string, nonNegativeInteger na date:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>

Maelezo 2

Maelezo hii ni schema iliyohusisha elementi ya uharibifu "note" ambayo ina elementi nne za uharibifu: "to", "from", "heading" na "body":

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Maelezo 3

Hii la kwa maelezo 2, lakini katika hii maelezo, tumewaharibika kuwaendelee kutumia kiwango cha ref kuuza jina la element:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="to"/>
      <xs:element ref="from"/>
      <xs:element ref="heading"/>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>