Hướng dẫn XML

TRANG CHỦ XML Giới thiệu XML Cách sử dụng XML Cây XML Cú pháp XML Phần tử XML Thuộc tính XML Không gian tên XML Hiển thị XML HttpRequest XML Trình phân tích cú pháp XML DOM XML XPath XML XSLT XML XQuery XML XML XLink Trình xác thực XML DTD XML Lược đồ XML Máy chủ XML Ví dụ về XML Câu đố XML Chứng chỉ XML

XML AJAX

Giới thiệu AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

DOM XML

Giới thiệu DOM Nút DOM Truy cập DOM Thông tin nút DOM Danh sách nút DOM DOM Traversing Điều hướng DOM DOM Nhận giá trị Nút thay đổi DOM DOM Xóa các nút Nút thay thế DOM DOM Tạo nút DOM Thêm nút Nút nhân bản DOM Ví dụ về DOM

Hướng dẫn XPath

Giới thiệu XPath Nút XPath Cú pháp XPath Trục XPath Toán tử XPath Ví dụ về XPath

Hướng dẫn XSLT

Giới thiệu XSLT Ngôn ngữ XSL Chuyển đổi XSLT XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sắp xếp> XSLT <if> XSLT <chọn> Áp dụng XSLT XSLT trên máy khách XSLT trên Máy chủ XSLT Chỉnh sửa XML Ví dụ về XSLT

Hướng dẫn XQuery

Giới thiệu XQuery Ví dụ về XQuery XQuery FLWOR HTML XQuery Điều khoản XQuery Cú pháp XQuery XQuery Thêm Chọn XQuery Hàm XQuery

DTD XML

Giới thiệu DTD Khối xây dựng DTD Phần tử DTD Các thuộc tính DTD Phần tử DTD so với Attr Thực thể DTD Ví dụ về DTD

Lược đồ XSD

Giới thiệu XSD XSD Cách thực hiện XSD <schema> Phần tử XSD Thuộc tính XSD Hạn chế XSD

XSD Complex

Phần tử XSD XSD trống Chỉ các phần tử XSD Chỉ văn bản XSD XSD hỗn hợp Chỉ báo XSD XSD <nhiều> XSD <anyAttribute> Thay thế XSD Ví dụ về XSD

Dữ liệu XSD

Chuỗi XSD Ngày XSD XSD Numeric XSD Misc Tham chiếu XSD

Dịch vụ web

Dịch vụ XML WSDL XML SOAP XML RDF XML RSS XML

Người giới thiệu

Các loại nút DOM Nút DOM DOM NodeList DOM NamedNodeMap Tài liệu DOM Phần tử DOM Thuộc tính DOM Văn bản DOM DOM CDATA Bình luận DOM DOM XMLHttpRequest Trình phân tích cú pháp DOM Phần tử XSLT Hàm XSLT / XPath

Thay thế phần tử XSD


Với các Lược đồ XML, một phần tử có thể thay thế một phần tử khác.


Thay thế phần tử

Giả sử rằng chúng tôi có người dùng từ hai quốc gia khác nhau: Anh và Na Uy. Chúng tôi muốn có khả năng cho phép người dùng chọn xem họ muốn sử dụng tên phần tử tiếng Na Uy hay tên phần tử tiếng Anh trong tài liệu XML.

Để giải quyết vấn đề này, chúng ta có thể xác định một nhóm thay thế trong lược đồ XML. Đầu tiên, chúng tôi khai báo một phần tử head và sau đó chúng tôi khai báo các phần tử khác để nói rằng chúng có thể thay thế cho phần tử head.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

Trong ví dụ trên, phần tử "name" là phần tử head và phần tử "navn" có thể thay thế cho "name".

Nhìn vào đoạn này của một lược đồ XML:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Một tài liệu XML hợp lệ (theo lược đồ ở trên) có thể trông giống như sau:

<customer>
  <name>John Smith</name>
</customer>

hoặc như thế này:

<kunde>
  <navn>John Smith</navn>
</kunde>


Thay thế phần tử chặn

Để ngăn các phần tử khác thay thế bằng một phần tử đã chỉ định, hãy sử dụng thuộc tính khối:

<xs:element name="name" type="xs:string" block="substitution"/>

Nhìn vào đoạn này của một lược đồ XML:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Một tài liệu XML hợp lệ (theo lược đồ ở trên) trông giống như sau:

<customer>
  <name>John Smith</name>
</customer>

NHƯNG ĐIỀU NÀY KHÔNG CÒN HIỆU LỰC:

<kunde>
  <navn>John Smith</navn>
</kunde>

Sử dụng nhóm thay thế

Loại của các phần tử có thể thay thế phải giống, hoặc có nguồn gốc từ, loại của phần tử đứng đầu. Nếu loại của phần tử có thể thay thế giống với loại của phần tử đứng đầu, bạn sẽ không phải chỉ định loại của phần tử có thể thay thế.

Lưu ý rằng tất cả các phần tử trong nhóm substitutionGroup (phần tử đứng đầu và các phần tử có thể thay thế) phải được khai báo là phần tử toàn cục, nếu không nó sẽ không hoạt động!


Các yếu tố toàn cầu là gì?

Phần tử toàn cục là phần tử là con của phần tử "lược đồ"! Phần tử cục bộ là phần tử được lồng trong các phần tử khác.