Chương I V: LƯỢC ĐỒ XML (Schema)

Một phần của tài liệu Luận văn tìm hiểu WINDOWS SHAREPOINT SERVICES 3 0 (Trang 48 - 53)

V. Sử dụng tham chiếu nội và tham chiếu ngoạ

Chương I V: LƯỢC ĐỒ XML (Schema)

Chúng ta thấy việc sử dụng và khai báo DTD rất phức tạp do đó tổ chức W3C đã

đưa ra một giải pháp tổng quát hóa DTD hơn đó là khai báo và định nghĩa các phần tử

trong tài liệu XML theo lược đồ XML (XML Schema).

Thực sự thì lược đồ XML không đơn giản hơn DTD nhưng nó mạnh hơn và chính xác hơn. Để kiểm tra tính hợp lệ của các định nghĩa DTD trong tài liệu ta dùng bộ kiểm tra

validator, để kiểm tra tính hợp lệ của các khai báo theo lược đồ XML ta dùng bộ kiểm tra cú pháp lược đồ (schema checker).

Chúng ta bắt đầu tìm hiểu về schema XML thông qua ví dụđơn giản sau đây: <?xmlversion="1.0"encoding="utf-8"standalone="no" ?>

<Laptrinh>

<Laptrinhvien> Như Ý</Laptrinhvien> <Laptrinhvien>Thạnh Trung</Laptrinhvien> <Chuyen>Lập trình XML</Chuyen>

</Laptrinh>

Lưu tài liệu này với tập tinh laptrinh.xml. Làm thế nào kết hợp lược đồ XML để trình duyệt hiểu. để thực hiện yêu cầu này cần chỉ định một không gian tên mặc định cho tài liệu bằng khai báo thuộc tính xmlns tại phần tử gốc cùng với thông tin về file chứa lược

đồ x-schema như sau :

<?xmlversion="1.0"encoding="utf-8"standalone="no" ?> <Laptrinhxmlns="x-schema:hello.xsd">

<Laptrinhvien> Như Ý</Laptrinhvien> <Laptrinhvien>Thạnh Trung</Laptrinhvien> <Chuyen>Lập trình XML</Chuyen>

</Laptrinh>

Nội dung file hello.xsd

<?xmlversion="1.0"encoding="utf-8"?> <xs:schemaname="hello"

targetNamespace="http://tempuri.org/hello.xsd" elementFormDefault="qualified"

xmlns="http://tempuri.org/hello.xsd"

xmlns:mstns="http://tempuri.org/hello.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<ElementTypename="Laptrinh"content="eltOnly"model="closed"/> <xs:elementtype="Laptrinhvien"minOccurs="1"maxOccurs="*"/> <xs:elementtype="Chuyen"minOccurs="1"maxOccurs="*"/> </xs:schema>

I.Khai báo các phần tử và kiểu dữ liệu:

Điểm cơ bản nhất để hiểu lược đồ XML đó là khái niệm sử dụng kiểu giản đơn và kiểu phức hợp trong khai báo kiểu cho các phần tử XML.

Để chỉ định kiểu cho một phần tử ta phải đảm bảo kiểu phải được định nghĩa trước

đó. Kiểu phức hợp là kiểu chứa các phần tử con trong nó hoặc chứa trong thuộc tính trong khi kiểu giản đơn thì không.

Kiểu giản đơn là kiểu nội tại đã được định nghĩa sẵn và ta có thể dùng nó tự do trong lược đồ XML. Dưới đây là bảng liệt kể các kiểu giản đơn.

Binary Kiểu dữ liệu nhị phân

boolean Kiểu lý luận

byte Kiểu byte

century Kiểu thế kỷ (ví dụ 21)

decimal Kiểu thập phân double Kiểu số thực 64 bits ENTITY Kiểu thực thể ENTITIES Kiểu đa thực thể ID Kiểu định danh int,integer Kiểu số nguyên

IDREF Kiểu tham chiếu định danh

NOTATION Kiểu ghi chú

NMTOKEN Kiểu token đơn

NMTOKENS Kiểu đa token

month Kiểu tháng

String Kiểu chuỗi

Bảng 4-1 Bảng liệt kê các kiểu dữ liệu đơn giản

Thực ra thì còn rất nhiều kiểu nữa chúng ta có thể tham khảo tại trang web

http://w3.org/199/XMLSchema/typeref.htm.

Tạo một kiểu phức hợp mới trong lược đồ bằng cách dùng phần tử khai báo <xsd:complexType>. Một định nghĩa về kiểu phức hợp bản thân nó thường chứa các khai báo phần tử con, tham chiếu đến các phần tử khác và khai báo thuộc tính. Khai báo phần tử bằng chỉ thị khai báo <xsd:element> và khai báo thuộc tính bằng chỉ thị

<xsd:attribute>. Cũng tương tự như DTD khai báo phần tử sẽ chỉ định cú pháp của phần tử trong lược đồ ta có thể chỉđịnh kiểu cho phần tử thậm chí còn có thể chỉđịnh kiểu cho thuộc tính.

<xs:sequence id="ab">

<xs:elementname="name"type="xs:string"/> <xs:elementname="city"type="xs:string"/> <xs:elementname="street"type="xs:string"/> </xs:sequence>

</xs:complexType>

Chỉđịnh số lần xuất hiện của các phần tử:

MinOccurs Chỉđịnh phần tửđó xuất hiện hoặc không xuất hiện ít nhất MaxOccurs Chỉđịnh phần tửđó xuất hiện tối đa là bao nhiêu lần

Bảng 4-2 Chỉ số xuất hiện của các phần tử (element)

Nếu như không chỉ định MinOccurs và MaxOccurs thì mặc định MinOccurs =1 còn MaxOccrus không giới hạn. Điều này có nghĩa là phải có ít nhất một phần tử xuất hiện.

II.Chỉ định ràng buộc và trị mặc định cho thuộc tính

Thuộc tính không có kiểu phức hợp chúng ta chỉ có thể khai báo thuộc tính giản

đơn nhưng thay vào đó ta có thể chỉ định các ràng buộc cho thuộc tính. Các ràng buộc cho thuộc tính thể hiện ở bảng sau:

required Thuộc tính cần phải hiện hữu trong thẻ và phải được gán trị

optional Thuộc tính có thể có hoặc không và giá trị gán cho thuộc tính là không bắt buộc

fixed Giá trị thuộc tính phải được gán cốđịnh và không được thay đổi nhưđã gán trong lược đồ.

trị mặc định của thuộc tính

prohibited Không cho phép thuộc tính xuất hiện

Bảng 4-3 Các ràng buộc giá trị cho thuộc tính.

Một phần của tài liệu Luận văn tìm hiểu WINDOWS SHAREPOINT SERVICES 3 0 (Trang 48 - 53)