News Ticker

Menu

XML_Schemas

<XML> Bài 3: XML_Schemas

1.Cú pháp XML_Schemas

<File XML name.xml>

<?xml version=”1.0”?> 
<name> 
<first> John </first> 
<middle> Johansen </middle>
 <last> Doe </last> 
</name>


File XSD name.xsd


<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns="http://exam.com/name" 
 targetNamespace="http://exam.com/name" 
 elementFormDefault="qualified" 
 attributeFormDefault="unqualified">

<xsd:element name="name"> 

<xsd:complexType>
 <xsd:sequence>
 <xsd:element name="first" type="xsd:string"/> 
<xsd:element name="middle" type="xsd:string"/> 
<xsd:element name="last" type="xsd:string"/> 
</xsd:sequence> 
</xsd:complexType> 

</xsd:element>
</xsd:schema>



Cấu trúc 1 file xsd gồm có các phần.

Khai báo XSD:

<schema 
xmlns=”http://www.w3.org/2001/XMLSchema” 
xmlns:target=”http://www.exam.com/name”
targetNamespace=”http://www.exam.com/name” 
elementFormDefault=”qualified”>
</schema>


Thân của tài liệu XSD.

<element name=”name”> 
<complexType>
 <sequence>
 <element name=”first” type=”xsd:string”/> 
<element name=”middle” type=”xsd:string”/> 
<element name=”last” type=”xsd:string”/> 
</sequence> 
</complexType> 
</element>

Định nghĩa 1 phần tử đơn giản:

<element
name = "Tên của element"
type = "Kiểu dữ liệu"
maxOccurs = "Số kí tự tối đa"
minOccurs = "Số kí tự tối thiểu"
default = "Giá trị mặc định"
fixed = "Giá trị cố định"
>

Các kiểu dữ liệu có thể là :
  • xsd:string
  • xsd:decimal
  • xsd:integer
  • xsd:boolean
  • xsd:date
  • xsd:time
  • Hoặc 1 kiểu dữ liệu tự khai báo.
default là một giá trị mặc định được tự động gán cho phần tử khi không có giá trị khác được quy định. Tức là khi bỏ trống nó mang giá trị của default.

fixed là giá trị cố định cũng được tự động gán cho phần tử, và phần tử sẽ không được nhận giá trị khác.

VD:
<element name="first_name" type="xsd:string"/> 

Định nghĩa 1 kiểu phần tử phức tạp:

<complexType

id = ID
name = NCName
abstract = true|false
mixed = true|false
block = (#all|list of (extension|restriction))
final = (#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))

</complexType>

Ví dụ 1: Kiểu phần tử phức tạp.

<element name=”name”> 
<complexType>
 <sequence>
 <element name=”first” type=”xsd:string”/> 
<element name=”middle” type=”xsd:string”/> 
<element name=”last” type=”xsd:string”/> 
</sequence> 
</complexType> 
</element>

Ví dụ 2:

<xsd:complexType name="name">
<xsd:sequence>
<xsd:element name="first" type="xsd:string"/>
<xsd:element name="mid" type="xsd:string" minOccurs="0"                                                          maxOccurs="unbounded"/>
<xsd:element name="last" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

 <element name=”name” type = "name"> 

Check valid ta làm file name.xml


<name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://exam.com/name name.xsd"
xmlns = "http://exam.com/name"
>
<first>Nguyen</first> 
<middle>Phu</middle>
 <last>Tu</last> 

</name>


Để xử dụng file XSD ta thêm đoạn sau vào gốc của tài liệu XML.(name.xml)

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://exam.com/name name.xsd"
xmlns = "http://exam.com/name"

thay đổi ở phần in đậm .

Chúc các bạn thành công.



Share This:

Post Tags:

No Comment to " XML_Schemas "

  • To add an Emoticons Show Icons
  • To add code Use [pre]code here[/pre]
  • To add an Image Use [img]IMAGE-URL-HERE[/img]
  • To add Youtube video just paste a video link like http://www.youtube.com/watch?v=0x_gnfpL3RM