XML Schema element ປະກອບສ່ວນ

ການກຳນົດແລະການນໍາໃຊ້

element ກຳນົດປະກອບສ່ວນ.

ຂໍ້ມູນປະກອບສ່ວນ

ຈຳນວນການປະກົດຕົວ ຈຳນວນປະກອບສ່ວນທີ່ຖືກກໍານົດໃນຄອມແກັສ.
ປະທານປະກອບສ່ວນ schema、choice、all、sequence
ຂັ້ນຕົວ simpleType、complexType、key、keyref、unique

ຄຳວິດ

<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 元素中,该元素可出现零次或一次,* 符号声明元素可出现零次或多次。)

ບັນດາລັກສະນະ

id

ທາງເລືອກຄືນ. ກຳນົດ ID ສະຫຼາກຫຼືສະຫຼາກພຽງຫຼືສະຫຼາກພຽງຫຼືສະຫຼາກພຽງ.

name

ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງປະກອບສິ່ງ. ຖ້າປະກອບສິ່ງຜູ້ອອກແມ່ນປະກອບສິ່ງ schema, ບັນດາລັກສະນະນີ້ແມ່ນສະເພາະທີ່ຈຳເປັນ.

ref

ທາງເລືອກຄືນ. ການອອກອາກາດຂອງປະກອບສິ່ງອື່ນ. ບັນດາລັກສະນະ ref ສາມາດມີຊຸມຊົນນາມພາຍໃນ. ຖ້າປະກອບສິ່ງຜູ້ອອກແມ່ນປະກອບສິ່ງ schema, ບໍ່ຕ້ອງໃຊ້ບັນດາລັກສະນະນີ້.

type

ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງຮູບແບບຂໍ້ມູນພາຍໃນຫຼືກຳນົດຊື່ຂອງ simpleType ຫຼື complexType.

substitutionGroup

ທາງເລືອກຄືນ. ກຳນົດຊື່ຂອງປະກອບສິ່ງທີ່ສາມາດແທນທີ່ປະກອບສິ່ງນີ້. ປະກອບສິ່ງນີ້ຕ້ອງມີຮູບແບບດຽວກັນຫຼືຈະມີຮູບແບບທີ່ອອກຈາກປະກອບສິ່ງທີ່ກໍານົດ.

ຖ້າປະກອບສິ່ງຜູ້ອອກບໍ່ແມ່ນປະກອບສິ່ງ schema, ບໍ່ສາມາດໃຊ້ບັນດາລັກສະນະນີ້.

default

ທາງເລືອກຄືນ. ກຳນົດຄູ່ມືທີ່ຍາວຈາກປະກອບສິ່ງ (ພຽງແຕ່ເວລາທີ່ປະກອບສິ່ງແມ່ນຂອງຮູບແບບທີ່ງານທີ່ສາມາດເບິ່ງໄດ້ຫຼື textOnly).

fixed

ທາງເລືອກຄືນ. ກຳນົດຄູ່ມືທີ່ຍາວຈາກປະກອບສິ່ງ (ພຽງແຕ່ເວລາທີ່ປະກອບສິ່ງແມ່ນຂອງຮູບແບບທີ່ງານທີ່ສາມາດເບິ່ງໄດ້ຫຼື textOnly).

form

ທາງເລືອກຄືນ. ຮູບແບບຂອງປະກອບສິ່ງນີ້. ຄູ່ມືດັ່ງກ່າວແມ່ນຄູ່ມືຂອງ ປະກອບສິ່ງ schema ທີ່ມີບັນດາລັກສະນະ elementFormDefault. ຈຳນວນນີ້ຕ້ອງແມ່ນໜຶ່ງໃນຄຳຂັດແຍ່ງ: "qualified" ຫຼື "unqualified".

ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.

  • ຖ້າຈຳນວນນີ້ແມ່ນ "unqualified", ບໍ່ຕ້ອງໄດ້ນຳໃຊ້ການຈັດຕັ້ງຊຸມຊົນນາມພາຍໃນປະກອບສິ່ງ.
  • ຖ້າຈຳນວນນີ້ແມ່ນ "qualified", ຕ້ອງໄດ້ນຳໃຊ້ການຈັດຕັ້ງຊຸມຊົນນາມພາຍໃນປະກອບສິ່ງ.

maxOccurs

ທາງເລືອກຄືນ。ກຳນົດຈຳນວນສູງສຸດທີ່ element ປະກອບສິ່ງທີ່ສາມາດເຫັນໄດ້ໃນປະກອບສິ່ງຜູ້ອອກແບບນີ້ຈຳນວນຫຼາຍກວ່າຫຼືບໍ່ຫຼາຍກວ່າ 0 ສິບບົດຈຳນວນ. ຖ້າບໍ່ຕ້ອງກຳນົດຈຳນວນສູງສຸດໃດໆຫຼືບໍ່ຕ້ອງກຳນົດຈຳນວນສູງສຸດໃດໆ, ຂໍ້ສັບ "unbounded". ຄູ່ມືດັ່ງກ່າວແມ່ນ 1.

ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.

minOccurs

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

ຖ້າປະກອບຜູ້ປົກຄອງແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້.

nillable

ທາງເລືອກຄືນ. ສະແດງວ່າຈະສາມາດຕັ້ງຄຸນນະພາບສະຫຼາກຄື explicit ຈະສາມາດຕັ້ງໃຫ້ປະກອບ. ປະກອບນີ້ຕົກລົງສຳລັບເນື້ອທີ່ຂອງປະກອບແລະບໍ່ແມ່ນປະກອບສຳລັບປະກອບ. ຄູ່ມູນຄົງທີ່ false.

ຖ້າ nillable ຢູ່ true, ຈະອະນຸຍາດໃຫ້ຄົນນັບເອກະສານທີ່ປະກອບຈະມີຄຸນນະພາບ nil ຄື true. nil ຄຸນນະພາບຖືກກໍານົດຄືສ່ວນໜຶ່ງຂອງ XML Schema Naming Space.

ຕົວຢ່າງ, ບົດຕໍ່ໄປນຳໃຊ້ປະກອບດຽວເອກະສານຄົນນັບເອກະສານ ແລະຕັ້ງ nillable ຄື true.

<xs:element name="myDate" type="xs:date" nillable="true"/>

ບົດຕໍ່ໄປນຳໃຊ້ປະກອບນີ້ແລະມີຄຸນນະພາບສະຫຼາກ (nil ການຕັ້ງຄວາມຜົນງານ true).

<myDate xsi:nil="true"></myDate>

abstract

ທາງເລືອກຄືນ. ສະແດງວ່າປະກອບຈະສາມາດນຳໃຊ້ໃນເອກະສານຄົນນັບເອກະສານ. ຖ້າຄູ່ມູນຢູ່ true, ປະກອບຈະບໍ່ສາມາດປະກົດຢູ່ໃນເອກະສານຄົນນັບເອກະສານ. ສະຫນາມທີ່ substitutionGroup ມີຊື່ປະກອບ (QName) ຂອງປະກອບນີ້ຕ້ອງປະກົດຢູ່ໃນຕອນທີ່ປະກອບນີ້. ປະກອບຫຼາຍກໍ່ສາມາດປະກົດຢູ່ໃນປະກອບ substitutionGroup. ຄູ່ມູນຄົງທີ່ false.

block

ທາງເລືອກຄືນ. ປະເພດທີ່ພັດທະນາ. ປະກອບ block ການປ້ອງກັນທຸກປະກອບທີ່ມີປະເພດພັດທະນາທີ່ກຳນົດ. ຄູ່ມູນສາມາດມີ #all ຫຼືລາຍການລຸ່ມ, ລາຍການນີ້ແມ່ນຄິດນີ້ທີ່ຢູ່ພາຍໃນ extension, restriction ຫຼື substitution:

  • extension - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
  • restriction - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
  • substitution - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.
  • #all - ການປ້ອງກັນທຸກປະກອບທີ່ພັດທະນາຈາກປະກອບນີ້ບໍ່ສາມາດນຳໃຊ້ແທນປະກອບນີ້.

final

ທາງເລືອກຄືນ。ການຕັ້ງຄວາມຜົນງານຄົງທີ່ຂອງປະກອບ element. ຖ້າປະກອບຜູ້ປົກຄອງບໍ່ແມ່ນປະກອບ schema, ບໍ່ສາມາດໃຊ້ປະກອບນີ້. ຄູ່ມູນສາມາດມີ #all ຫຼືລາຍການລຸ່ມ, ລາຍການນີ້ແມ່ນຄິດນີ້ຂອງ extension ຫຼື restriction:

  • extension - ປ້ອງກັນປະກອບທີ່ພັດທະນາວ່າຈະປ້ອງກັນຈາກການປ່ຽນປະກອບ
  • restriction - ປ້ອງກັນປະກອບທີ່ພັດທະນາວ່າຈະປ້ອງກັນຈາກການປ່ຽນປະກອບ
  • #all - ປ້ອງກັນປະກອບທີ່ພັດທະນາທັງໝົດຈາກປະກອບດັ່ງກ່າວ

any attributes

ຄວາມທີ່ສາມ - ກຳນົດປະເພດຂອງປະກອບອື່ນໆທີ່ບໍ່ມີປະເພດ schema:

ບັນດາຄວາມ

ຄວາມທີສາມ

ບັນດາຄວາມທີສາມນີ້ແມ່ນ schema ທີ່ມີປະກອບຂະໜາດສີ່: "fname", "lname", "age" ແລະ "dateborn" ໂດຍມີປະເພດທີ່ແມ່ນ string, nonNegativeInteger ແລະ 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>

ຄວາມທີສອງ

ບັນດາຄວາມທີສາມນີ້ແມ່ນ schema ທີ່ມີປະກອບຂະໜາດ "note" ທີ່ມີປະກອບຂະໜາດທີ່ສະເພາະ: "to", "from", "heading" ແລະ "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>

ຄວາມທີສາມ

ບັນດາຄວາມນີ້ກັບຄວາມທີສອງນັ້ນບໍ່ກົງກັນຢ່າງໃດ ແຕ່ໃນບັນດາຄວາມນີ້ພວກເຮົາເລືອກທີ່ຈະໃຊ້ປະເພດ ref ເພື່ອອ້າງຕົວມາຊື່ປະກອບ:

<?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>