XML Schema element yếu tố

Định nghĩa và cách sử dụng

Phần tử element định nghĩa một phần tử.

Thông tin phần tử

Lần xuất hiện Số lượng phần tử được định nghĩa trong cấu trúc.
Phần tử cha schema, choice, all, sequence
Nội dung simpleType, complexType, key, keyref, unique

Ngữ pháp

<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|danh sách của (extension|restriction))
final=(#all|danh sách của (extension|restriction))
bất kỳ thuộc tính nào
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? ký hiệu được khai báo trong phần tử element, phần tử này có thể xuất hiện không lần hoặc một lần, * ký hiệu được khai báo phần tử có thể xuất hiện không lần hoặc nhiều lần).

Thuộc tính

id

Chọn. Đặt ID duy nhất cho phần tử.

name

Chọn. Đặt tên của phần tử. Nếu phần tử cha là phần tử schema, thì thuộc tính này là bắt buộc.

ref

Chọn. Tham chiếu đến phần tử khác. Thuộc tính ref có thể chứa tiền tố tên không gian. Nếu phần tử cha là phần tử schema, thì không sử dụng thuộc tính này.

type

Chọn. Đặt tên của loại dữ liệu nội bộ, hoặc đặt tên cho phần tử simpleType hoặc complexType.

substitutionGroup

Chọn. Đặt tên của phần tử có thể thay thế cho phần tử này. Phần tử đó phải có cùng loại hoặc từ loại phần tử được chỉ định.

Không thể sử dụng thuộc tính này nếu phần tử cha không phải là phần tử schema.

default

Chọn. Đặt giá trị mặc định cho phần tử (chỉ sử dụng khi nội dung phần tử là loại đơn giản hoặc textOnly).

fixed

Chọn. Đặt giá trị cố định cho phần tử (chỉ sử dụng khi nội dung phần tử là loại đơn giản hoặc textOnly).

form

Tùy chọn. Hình thức của yếu tố. Giá trị mặc định là giá trị của thuộc tính elementFormDefault của yếu tố schema chứa thuộc tính này. Giá trị này phải là một trong các chuỗi sau: "qualified" hoặc "unqualified".

Nếu yếu tố cha là yếu tố schema, không thể sử dụng thuộc tính này.

  • Nếu giá trị này là "unqualified", thì không cần định danh bằng tiền tố không gian tên.
  • Nếu giá trị này là "qualified", thì yếu tố này phải được định danh bằng tiền tố không gian tên.

maxOccurs

Tùy chọn. Quy định số lần tối đa mà yếu tố có thể xuất hiện trong yếu tố cha. Giá trị này có thể là số nguyên dương hoặc bằng không. Nếu không muốn đặt giới hạn cho số lần tối đa, hãy sử dụng chuỗi "unbounded". Giá trị mặc định là 1.

Nếu yếu tố cha là yếu tố schema, không thể sử dụng thuộc tính này.

minOccurs

Tùy chọn. Quy định số lần tối thiểu mà yếu tố có thể xuất hiện trong yếu tố cha. Giá trị này có thể là số nguyên dương hoặc bằng không. Giá trị mặc định là 1.

Nếu yếu tố cha là yếu tố schema, không thể sử dụng thuộc tính này.

nillable

Tùy chọn. Chỉ ra có thể phân phối giá trị zero rõ ràng cho yếu tố này hay không. Điều này áp dụng cho nội dung của yếu tố và không phải là thuộc tính của yếu tố. Giá trị mặc định là false.

Nếu nillable là true, sẽ cho phép instance của yếu tố có thể đặt thuộc tính nil là true. Thuộc tính nil được định nghĩa là một phần của không gian tên XML schema của instance.

Ví dụ, đoạn dưới đây định nghĩa yếu tố đơn lẻ và đặt nillable là true.

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

Dưới đoạn sử dụng yếu tố này và có giá trị zero rõ ràng (Thuộc tính nil được đặt là true).

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

abstract

Tùy chọn. Chỉ ra yếu tố có thể được sử dụng trong tài liệu mẫu hay không. Nếu giá trị là true, yếu tố không thể xuất hiện trong tài liệu mẫu. Ngược lại, yếu tố khác chứa tên định danh (QName) của thuộc tính substitutionGroup của yếu tố đó phải xuất hiện ở vị trí của yếu tố. Nhiều yếu tố có thể tham chiếu đến yếu tố này trong thuộc tính substitutionGroup. Giá trị mặc định là false.

block

Tùy chọn. Loại phân tích. Thuộc tính block ngăn chặn yếu tố có loại phân tích được chỉ định thay thế yếu tố đó. Giá trị có thể chứa #all hoặc một danh sách, danh sách này là tập con của extension, restriction hoặc substitution:

  • extension - Ngăn chặn các yếu tố được phân tích từ mở rộng thay thế yếu tố đó.
  • restriction - Ngăn cản các phần tử dẫn xuất được sử dụng để thay thế phần tử này thông qua việc hạn chế
  • substitution - Ngăn cản các phần tử dẫn xuất được sử dụng để thay thế phần tử này thông qua việc thay thế
  • #all - Ngăn cản tất cả các phần tử dẫn xuất được sử dụng để thay thế phần tử này

final

Tùy chọn. Đặt giá trị mặc định cho thuộc tính final của phần tử element. Nếu phần tử cha không phải là phần tử schema, thì không thể sử dụng thuộc tính này. Giá trị có thể chứa #all hoặc một danh sách, danh sách này là tập hợp con của extension hoặc restriction:

  • extension - Ngăn cản các phần tử dẫn xuất được sử dụng để thay thế phần tử này thông qua việc mở rộng
  • restriction - Ngăn cản các phần tử dẫn xuất được sử dụng để thay thế phần tử này thông qua việc hạn chế
  • #all - Ngăn cản tất cả các phần tử dẫn xuất được sử dụng để thay thế phần tử này

bất kỳ thuộc tính nào

Tùy chọn. Định nghĩa bất kỳ thuộc tính nào có không gian tên không phải schema.

Mô hình

Ví dụ 1

Ví dụ dưới đây là một schema có bốn phần tử đơn giản: "fname", "lname", "age" và "dateborn", loại là string, nonNegativeInteger và 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>

Ví dụ 2

Ví dụ dưới đây là một schema có phần tử loại phức tạp "note" với bốn phần tử đơn giản: "to", "from", "heading" và "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>

Ví dụ 3

Ví dụ này tương tự như ví dụ 2, nhưng trong ví dụ này, chúng ta chọn sử dụng thuộc tính ref để tham chiếu tên phần tử:

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