XML Şema elementi
Tanım ve kullanım
element elementi bir element tanımlar.
Element bilgisi
Görünüm sıklığı | Şemada tanımlanan element sayısı. |
Ana element | schema, choice, all, sequence |
İçerik | simpleType, complexType, key, keyref, unique |
Sözdizimi
<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)) Herhangi bir özellik > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? sembolü element elementinde belirtilmiştir, bu element sıfır veya bir kez görünebilir, * sembolü element sıfır veya çok kez görünebilir).
Özellik
id
Seçimli. Bu elementin benzersiz bir ID'sini belirtir.
ad
Seçimli. Elementin adını belirtir. Eğer ana element schema elementi ise, bu özellik zorunludur.
ref
Seçimli. Başka bir elemente atıf yapar. ref özelliği bir ad alan ön eki içerebilir. Eğer ana element schema elementi ise, bu özellik kullanılmaz.
tür
Seçimli. Düzenli veri türünün adını belirtir veya simpleType veya complexType elementinin adını belirtir.
substitutionGroup
Seçimli. Bu elementin yerine kullanılabilir elementin adını belirtir. Bu element aynı türde veya belirlenen element türünden türetilmiş olmalıdır.
Eğer ana element schema elementi değilse, bu özellik kullanılamaz.
varsayılan
Seçimli. Elemente varsayılan bir değer belirtir (sadece element içeriği basit tür veya textOnly ise kullanılır).
sabit
Seçimli. Elemente sabit bir değer belirtir (sadece element içeriği basit tür veya textOnly ise kullanılır).
form
Opsiyonel. Bu elementin formu. Varsayılan değeri, bu özelliği içeren schema elementinin elementFormDefault özelliğinin değeri olacaktır. Bu değer aşağıdaki stringlerden biri olmalıdır: "qualified" veya "unqualified".
Eğer ebeveyn element schema elementi ise, bu özellik kullanılamaz.
- Bu değer "unqualified" ise, elementin bir ad alan adı önüne geçilmesi gerekmez.
- Bu değer "qualified" ise, elementin bir ad alan adı önüne geçilmesi gerekmektedir.
maxOccurs
Opsiyonel. Elementin ebeveyn elementte görünmesini gerektiren en büyük sıklığı belirler. Bu değer, sıfır veya daha büyük bir tam sayı olabilir. En büyük sıklığa sınırlama uygulamak istemezseniz "unbounded" kelimesi kullanılabilir. Varsayılan değeri 1'dir.
Eğer ebeveyn element schema elementi ise, bu özellik kullanılamaz.
minOccurs
Opsiyonel. Elementin ebeveyn elementte görünmesini gerektiren en küçük sıklığı belirler. Bu değer, sıfır veya daha büyük bir tam sayı olabilir. Varsayılan değeri 1'dir.
Eğer ebeveyn element schema elementi ise, bu özellik kullanılamaz.
nillable
Opsiyonel. Bu elemente açıkça sıfır değeri atlanıp atlanamayacağını belirtir. Bu özellik, element içeriği için geçerlidir ve bu elementin bir özelliği değildir. Varsayılan değeri false'dır.
nillable true olursa, bu elementin örneği nil özelliğini true olarak ayarlayabilir. nil özelliği, örneğin XML şablonu bir parçası olarak tanımlanmıştır.
Örneğin, aşağıdaki paragraf, tek bir element tanımlarken nillable özelliğini true olarak ayarlar.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Bu elementin kullanıldığı ve açıkça sıfır değeri (nil özelliği true olarak ayarlanmış) olan bir sonraki paragraf.
<myDate xsi:nil="true"></myDate>
abstract
Opsiyonel. Elementin örnekte kullanılıp kullanılmayacağını belirtir. Bu değerin true olması durumunda element örnekte görünemez. Aksine, substitutionGroup özelliği bu elementin限定名 (QName) ını içeren diğer elementler bu elementin konumunda görünmelidir. Birden fazla element, substitutionGroup özelliğinde bu elemente referans verebilir. Varsayılan değeri false'dır.
block
Opsiyonel. Türetilmiş tür. block özelliği, belirli türetilmiş türde olan elementlerin bu elementin yerine kullanılmamasını sağlar. Bu değer #all veya extension, restriction veya substitution kümelerinden bir alt küme içerebilir:
- extension - Bu elementin, bu elementin yerine kullanılmak üzere türetilmiş elementlerin kullanılmasını önlemek için.
- restiction - Türetilmiş elementlerin sınırlama yoluyla bu elementin yerine kullanılmasını önler.
- substitution - Türetilmiş elementlerin değiştirme yoluyla bu elementin yerine kullanılmasını önler.
- #all - Tüm türetilmiş elementlerin bu elementin yerine kullanılmasını önler.
final
Opsiyonel. Element üzerindeki final özelliğinin varsayılan değerini ayarlar. Eğer ebeveyn element schema elementi değilse, bu özellik kullanılamaz. Bu değer #all veya bir liste olabilir, bu liste extension veya restriction'un bir alt kümesi olabilir:
- extension - Türetilmiş elementlerin genişletme yoluyla bu elementin yerine kullanılmasını önler
- restiction - Türetilmiş elementlerin sınırlama yoluyla bu elementin yerine kullanılmasını önler
- #all - Tüm türetilmiş elementlerin bu elementin yerine kullanılmasını önler
Herhangi bir özellik
Opsiyonel. Non-schema adlımsal alanı olan herhangi bir diğer özelliği belirtir.
Örnek
Örnek 1
Aşağıdaki örnek, "fname", "lname", "age" ve "dateborn" dört basit elementi içeren ve türleri string, nonNegativeInteger ve date olan bir schema'yı içerir:
<?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>
Örnek 2
Aşağıdaki örnek, "note" adlı karmaşık türde bir element içeren bir schema'yı içerir. "note" elementsi, "to", "from", "heading" ve "body" dört basit elementi içerir:
<?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>
Örnek 3
Bu örnek, örnek 2 ile aynıdır, ancak bu örnekte, element adını referans almak için ref özelliğini kullanmayı seçiyoruz:
<?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>