Kiểu dữ liệu XML Schema

Một phần của tài liệu giao thức quản lý mạng và công nghệ dịch vụ web thực hiện khai thác đường dây thuê bao (Trang 64 - 67)

ðể một máy trạm SOAP giao tiếp hiệu quả với một máy chủ SOAP, máy trạm và máy chủ phải thống nhất một hệ thống kiểu dữ liệu. Mặc ñịnh, XML 1.0 không cung cấp một hệ thống kiểu dữ liệu. Ngược lại, mọi ngôn ngữa lập trình cung

66

cấp một vài cơ sở ñể khai báo các kiểu dữ liệu, như integer, float, double và string. Một trong những thách thức lớn nhất trong việc xây dựng dịch vụ Web là tạo một hệ thống kiểu dữ liệu chung có thể ñược sử dụng bởi tập hợp ña dạng các ngôn ngữ lập trình chạy trên tập hợp ña dạng các hệ ñiều hành[8].

WSDL không có mục ñích tạo ra kiểu dữ liệu chuẩn cho XML. Trong thực tế, WSDL ñược ñặc tả một cách mềm dẻo nhất và nó không bị ràng buộc với bất kỳ một hệ thống kiểu dữ liệu nào. Tuy nhiên, WSDL các kiểu ñược ñặc tả mặc ñịnh bởi W3C XML Schema. ðặc tả XML Schema hiện nay cũng ñược sử dụng rộng rãi nhất ñể ñặc tả kiểu dữ liệu[8].

Bảng 2.4.2 - Danh sách các kiểu dữ liệu dựng sẵn trong XML Schema Có hai vấn ñề quan trọng cần xem xét ở ñây: Có hai vấn ñề quan trọng cần xem xét ở ñây:

67

Thứ nhất, ñặc tả XML Schema gồm có một hệ thống kiểu dữ liệu cơ bản ñể mã hóa hầu hết các kiểu dữ liệu. Hệ thống kiểu này bao gồm một danh sách dài các kiểu ñơn giản dựng sẵn, như string, float, integer, double, time, date, như bảng trên.

Nếu ứng dụng có sử dụng những kiểu ñơn giản ñó, thì không cần phải thêm vào

WSDL phần tử types, và file WSDL sẽ hết sức ñơn giản.

Thứ hai, ñặc tả XML Schema cung cấp một cơ sở ñể tạo mới các kiểu dữ liệu. ðiều này rất quan trọng nếu muốn tạo các kiểu dữ liệu dựa trên những gì ñã ñược ñịnh nghĩa trong lược ñồ. Ví dụ, một dịch vụ có thể trả về một mảng các giá trị có kiểu float hoặc một ñối tượng phức tạp hơn như bảng giá cổ phiếu chứa các số liệu high, low, và khối lượng của một cổ phiếu cụ thể. Mặc dù dịch vụ dựa trên các kiểu dữ liệu ñơn giản của XML Schema, ta vẫn phải khai báo một kiểu dữ liệu mới trong phần tử types của WSDL.

Ví dụ khai báo kiểu dữ liệu mới là mảng trong một file WSDL ñặc tả về dịch vụ cung cấp bảng giá chứng khoán[8]:

<types> <…. targetNamespace="http://www.ecerami.com/schema" ….> <complexType name="ArrayOfString">

<complexContent> <restriction base="soapenc:Array">

<attribute ref="soapenc:arrayType" wsdl:arrayType="string[]"/> </restriction> </complexContent> </complexType>

<complexType name="ArrayOfDouble">

<complexContent> <restriction base="soapenc:Array">

<attribute ref="soapenc:arrayType" wsdl:arrayType="double[]"/>

</restriction> </complexContent> </complexType> </schema> </types>

<message name="PriceListRequest">

<part name="sku_list" type="xsd1:ArrayOfString"/> </message> <message name="PriceListResponse">

68

Ví dụ khai báo kiểu dữ liệu mới phức tạp hơn:

<types> <xsd:schema targetNamespace="http://www.ecerami.com/schema" xmlns="http://www.w3.org/2001/XMLSchema">

<xsd:complexType name="product">

<xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="description" type="xsd:string"/>

<xsd:element name="price" type="xsd:double"/> <xsd:element name="SKU" type="xsd:string"/>

</xsd:sequence></xsd:complexType> </xsd:schema> </types>

Một phần của tài liệu giao thức quản lý mạng và công nghệ dịch vụ web thực hiện khai thác đường dây thuê bao (Trang 64 - 67)