Khóa học gợi ý:

Phần tử unique của XML Schema

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

Phần tử unique chỉ định thuộc tính hoặc giá trị phần tử (hoặc kết hợp thuộc tính và giá trị phần tử) phải duy nhất trong phạm vi được chỉ định. Giá trị này phải duy nhất hoặc bằng 0.

Phần tử unique phải chứa theo thứ tự các phần tử sau:

phần tử selector

Phần tử selector chứa biểu thức XPath, chỉ định một tập phần tử, trong đó giá trị được chỉ định bởi phần tử field phải duy nhất.

Phải có một và chỉ một phần tử selector.

phần tử field

Mỗi phần tử field đều chứa một biểu thức XPath, chỉ định giá trị duy nhất (thuộc tính hoặc giá trị phần tử) đối với tập phần tử được chỉ định bởi phần tử selector.

Phải có một hoặc nhiều phần tử field. Nếu có nhiều phần tử field, sự kết hợp của các phần tử field phải là duy nhất. Trong trường hợp này, giá trị của một phần tử field đơn lẻ có thể không duy nhất đối với phần tử được chọn, nhưng sự kết hợp của tất cả các trường phải duy nhất.

Thông tin phần tử

Lần xuất hiện Một lần
Phần tử cha element
Nội dung annotation、field、selector

Ngữ pháp

<unique
id=ID
name=NCName
bất kỳ thuộc tính nào
>
(annotation?,(selector,field+))
</unique>

(? ký hiệu này được tuyên bố trong phần tử unique, phần tử này có thể xuất hiện 0 lần hoặc 1 lần。)

Thuộc tính Mô tả
id Tùy chọn. Định nghĩa ID duy nhất cho phần tử này.
name Bắt buộc. Định danh tên cho 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 non-schema.

Mô hình

Ví dụ 1

Ví dụ này là một loại đơn giản được hợp nhất từ hai loại đơn giản:

<xs:element name="jeans_size">
  <xs:simpleType>
    <xs:union memberTypes="sizebyno sizebystring" />
  </xs:simpleType>
</xs:element>
<xs:simpleType name="sizebyno">
  <xs:restriction base="xs:positiveInteger">
    <xs:maxInclusive value="42"/>
  </xs:restriction>
</xs:simpleType>
<xs:simpleType name="sizebystring">
  <xs:restriction base="xs:string">
    <xs:enumeration value="small"/>
    <xs:enumeration value="medium"/>
    <xs:enumeration value="large"/>
  </xs:restriction>
</xs:simpleType>