XSD - คู่มือฉบับย่อ
XML Schema Definition หรือที่เรียกกันทั่วไปว่า XSD เป็นวิธีอธิบายภาษา XML ได้อย่างแม่นยำ XSD ตรวจสอบความถูกต้องของโครงสร้างและคำศัพท์ของเอกสาร XML กับกฎทางไวยากรณ์ของภาษา XML ที่เหมาะสม
เอกสาร XML สามารถกำหนดเป็น -
Well-formed- หากเอกสาร XML เป็นไปตามกฎ XML ทั่วไปทั้งหมดเช่นแท็กต้องซ้อนกันอย่างถูกต้องแท็กเปิดและปิดต้องมีความสมดุลและแท็กว่างต้องลงท้ายด้วย '/>' จึงเรียกว่ามีรูปแบบที่ดี
OR
Valid- เอกสาร XML ที่กล่าวว่าใช้ได้เมื่อไม่เพียง แต่มีรูปแบบที่ดีเท่านั้นแต่ยังสอดคล้องกับ XSD ที่มีอยู่ซึ่งระบุแท็กที่ใช้สิ่งที่แท็กเหล่านั้นสามารถมีได้และแท็กใดที่สามารถเกิดขึ้นได้ภายในแท็กอื่น ๆ รวมถึงคุณสมบัติอื่น ๆ .
แผนภาพต่อไปนี้แสดงวิธีใช้ XSD เพื่อจัดโครงสร้างเอกสาร XML -
นี่คือรหัส XSD ง่ายๆ ลองดูที่มัน
<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
targetNamespace = "http://www.tutorialspoint.com"
xmlns = "http://www.tutorialspoint.com"
elementFormDefault = "qualified">
<xs:element name = 'class'>
<xs:complexType>
<xs:sequence>
<xs:element name = 'student' type = 'StudentType' minOccurs = '0'
maxOccurs = 'unbounded' />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
</xs:schema>
คุณสมบัติ
นี่คือรายการคุณสมบัติยอดนิยมของ XSD -
- XSD สามารถขยายได้สำหรับการเพิ่มในอนาคต
- XSD สมบูรณ์กว่าและทรงพลังกว่า DTD
- XSD เขียนด้วย XML
- XSD รองรับชนิดข้อมูล
- XSD รองรับเนมสเปซ
- XSD เป็นคำแนะนำ W3C
XML XSD จะถูกเก็บไว้ในเอกสารแยกต่างหากจากนั้นเอกสารสามารถเชื่อมโยงกับเอกสาร XML เพื่อใช้งานได้
ไวยากรณ์
ไวยากรณ์พื้นฐานของ XSD มีดังนี้ -
<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
targetNamespace = "http://www.tutorialspoint.com"
xmlns = "http://www.tutorialspoint.com" elementFormDefault = "qualified">
<xs:element name = 'class'>
<xs:complexType>
<xs:sequence>
<xs:element name = 'student' type = 'StudentType' minOccurs = '0'
maxOccurs = 'unbounded' />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
</xs:schema>
<Schema> องค์ประกอบ
Schema เป็นองค์ประกอบหลักของ XSD และจำเป็นเสมอ
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
ส่วนข้างต้นระบุว่าองค์ประกอบและประเภทข้อมูลที่ใช้ในสคีมาถูกกำหนดใน http://www.w3.org/2001/XMLSchema เนมสเปซและองค์ประกอบ / ชนิดข้อมูลเหล่านี้ควรนำหน้าด้วย xs. จำเป็นเสมอ
targetNamespace = "http://www.tutorialspoint.com"
ส่วนด้านบนระบุว่าองค์ประกอบที่ใช้ในสคีมานี้ถูกกำหนดใน http://www.tutorialspoint.comเนมสเปซ เป็นทางเลือก
xmlns = "http://www.tutorialspoint.com"
ส่วนด้านบนระบุว่าเนมสเปซเริ่มต้นคือ http://www.tutorialspoint.com.
elementFormDefault = "qualified"
ส่วนข้างต้นระบุว่าองค์ประกอบใด ๆ ที่ประกาศในสคีมานี้ต้องเป็นเนมสเปซที่ผ่านการรับรองก่อนที่จะใช้ในเอกสาร XML ใด ๆ ซึ่งเป็นทางเลือก
การอ้างอิงสคีมา
ดูแผนผังอ้างอิงต่อไปนี้ -
<?xml version = "1.0"?>
<class xmlns = "http://www.tutorialspoint.com"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.tutorialspoint.com student.xsd">
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Kad</lastname>
<nickname>Dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Singh</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
xmlns = "http://www.tutorialspoint.com"
ส่วนด้านบนระบุการประกาศเนมสเปซเริ่มต้น เนมสเปซนี้ใช้โดยตัวตรวจสอบสคีมาตรวจสอบว่าองค์ประกอบทั้งหมดเป็นส่วนหนึ่งของเนมสเปซนี้ เป็นทางเลือก
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.tutorialspoint.com student.xsd">
หลังจากกำหนด XMLSchema-instance xsi แล้วให้ใช้ schemaLocationแอตทริบิวต์ แอตทริบิวต์นี้มีสองค่าเนมสเปซและตำแหน่งของ XML Schema ที่จะใช้คั่นด้วยช่องว่าง เป็นทางเลือก
เราจะใช้โปรแกรมตรวจสอบ XSD ที่ใช้ Java เพื่อตรวจสอบความถูกต้อง students.xml กับ students.xsd.
student.xml
<?xml version = "1.0"?>
<class>
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Kad</lastname>
<nickname>Dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Singh</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
student.xsd
<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
<xs:element name = 'class'>
<xs:complexType>
<xs:sequence>
<xs:element name = 'student' type = 'StudentType' minOccurs = '0'
maxOccurs = 'unbounded' />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
</xs:schema>
XSDValidator.java
import java.io.File;
import java.io.IOException;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;
public class XSDValidator {
public static void main(String[] args) {
if(args.length !=2){
System.out.println("Usage : XSDValidator <file-name.xsd> <file-name.xml>" );
} else {
boolean isValid = validateXMLSchema(args[0],args[1]);
if(isValid){
System.out.println(args[1] + " is valid against " + args[0]);
} else {
System.out.println(args[1] + " is not valid against " + args[0]);
}
}
}
public static boolean validateXMLSchema(String xsdPath, String xmlPath){
try {
SchemaFactory factory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new File(xsdPath));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File(xmlPath)));
} catch (IOException e){
System.out.println("Exception: "+e.getMessage());
return false;
} catch(SAXException e1){
System.out.println("SAX Exception: "+e1.getMessage());
return false;
}
return true;
}
}
ขั้นตอนในการตรวจสอบ XML กับ XSD
คัดลอกไฟล์ XSDValidator.java ไฟล์ไปยังตำแหน่งใดก็ได้พูด E: > java
คัดลอกไฟล์ students.xml ไปยังตำแหน่งเดียวกัน E: > java
คัดลอกไฟล์ students.xsd ไปยังตำแหน่งเดียวกัน E: > java
รวบรวม XSDValidator.javaใช้คอนโซล ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง JDK 1.5 เป็นต้นไปบนเครื่องของคุณและมีการกำหนดค่าคลาสพา ธ สำหรับรายละเอียดเกี่ยวกับวิธีใช้ JAVA โปรดดูบทช่วยสอน JAVA
E:\java\javac XSDValidator.java
ดำเนินการ XSDValidator ด้วย students.xsd และ students.xml ส่งผ่านเป็นอาร์กิวเมนต์
E:\java\java XSDValidator students.xsd students.xml
ตรวจสอบผลลัพธ์
คุณจะเห็นผลลัพธ์ต่อไปนี้ -
students.xml is valid against students.xsd
ในบทนี้เราจะเห็น Simple types ที่ XSD กำหนด
ส. | ประเภทและคำอธิบายง่ายๆ |
---|---|
1 | ธาตุ องค์ประกอบอย่างง่ายสามารถมีได้เฉพาะข้อความ ไม่สามารถมีองค์ประกอบอื่น ๆ |
2 | แอตทริบิวต์ แอตทริบิวต์เป็นประเภทหนึ่งและใช้ในองค์ประกอบที่ซับซ้อน |
3 | ข้อ จำกัด ข้อ จำกัด กำหนดค่าที่ยอมรับได้ขององค์ประกอบ XML |
Complex Element คือองค์ประกอบ XML ซึ่งสามารถมีองค์ประกอบและ / หรือแอตทริบิวต์อื่น ๆ เราสามารถสร้างองค์ประกอบที่ซับซ้อนได้สองวิธี -
กำหนดประเภทที่ซับซ้อนแล้วสร้างองค์ประกอบโดยใช้ type แอตทริบิวต์
กำหนดประเภทที่ซับซ้อนโดยตรงโดยการตั้งชื่อ
กำหนดประเภทที่ซับซ้อนแล้วสร้างองค์ประกอบโดยใช้แอตทริบิวต์ type
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element name = 'student' type = 'StudentType' />
กำหนดประเภทที่ซับซ้อนโดยตรงโดยการตั้งชื่อ
<xs:element name = "student">
<xs:complexType>
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
<xs:element>
ต่อไปนี้เป็นรายการประเภทที่ซับซ้อนที่ XSD รองรับ
ส. | ประเภทและคำอธิบายง่ายๆ |
---|---|
1 | ว่างเปล่า องค์ประกอบประเภท Complex Empty complex สามารถมีได้เฉพาะแอตทริบิวต์ แต่ไม่มีเนื้อหา |
2 | องค์ประกอบเท่านั้น องค์ประกอบประเภทเชิงซ้อน Elements-Only สามารถมีองค์ประกอบได้เท่านั้น |
3 | ข้อความเท่านั้น องค์ประกอบประเภทที่ซับซ้อนแบบข้อความเท่านั้นมีได้เฉพาะแอตทริบิวต์และข้อความ |
4 | ผสม องค์ประกอบประเภทที่ซับซ้อนผสมสามารถมีองค์ประกอบแอตทริบิวต์และข้อความ |
5 | ตัวชี้วัด อินดิเคเตอร์ควบคุมวิธีการจัดระเบียบองค์ประกอบในเอกสาร XML |
6 | องค์ประกอบ <any> ใช้สำหรับองค์ประกอบที่ไม่ได้กำหนดโดยสคีมา |
7 | แอตทริบิวต์ <anyAttribute> ใช้สำหรับแอตทริบิวต์ที่ไม่ได้กำหนดโดย schema |
ชนิดข้อมูลสตริงใช้แทนอักขระในเอกสาร XML
<xs: string> ชนิดข้อมูล
ชนิดข้อมูล <xs: string> สามารถใช้อักขระฟีดบรรทัดการส่งคืนค่าขนส่งและอักขระแท็บ ตัวประมวลผล XML ไม่แทนที่ฟีดบรรทัดการส่งคืนค่าการขนส่งและอักขระแท็บในเนื้อหาด้วยช่องว่างและคงไว้เหมือนเดิม ตัวอย่างเช่นช่องว่างหรือแท็บต่างๆจะถูกเก็บรักษาไว้ระหว่างการแสดงผล
<xs: string> ตัวอย่าง
การประกาศองค์ประกอบใน xsd -
<xs:element name = "name" type = "xs:string"/>
การใช้องค์ประกอบใน xml -
<name>Dinkar</name>
<name>Dinkar Kad</name>
ชนิดข้อมูล <xs: token>
ชนิดข้อมูล <xs: token> ได้มาจากชนิดข้อมูล <string> และสามารถรับอักขระฟีดบรรทัดการส่งคืนค่าขนส่งและอักขระแท็บ ตัวประมวลผล XML จะลบบรรทัดฟีดแท็บการส่งคืนแคร่ช่องว่างนำหน้าและต่อท้ายและช่องว่างหลายช่อง
<xs: token> ตัวอย่าง
การประกาศองค์ประกอบใน xsd -
<xs:element name = "name" type = "xs:token"/>
การใช้องค์ประกอบใน xml -
<name>Dinkar</name>
<name>Dinkar Kad</name>
ประเภทข้อมูลสตริง
ต่อไปนี้เป็นรายการประเภทข้อมูลที่ใช้กันทั่วไปซึ่งได้มาจากประเภทข้อมูล <string>
ส. | ชื่อและคำอธิบาย |
---|---|
1 | ID แสดงแอตทริบิวต์ ID ใน XML และใช้ในแอตทริบิวต์ schema |
2 | IDREF แสดงแอตทริบิวต์ IDREF ใน XML และใช้ในแอตทริบิวต์สคีมา |
3 | language แสดงรหัสภาษาที่ถูกต้อง |
4 | Name แสดงชื่อ XML ที่ถูกต้อง |
5 | NMTOKEN แสดงแอตทริบิวต์ NMTOKEN ใน XML และใช้ในแอตทริบิวต์ schema |
6 | normalizedString แสดงสตริงที่ไม่มีฟีดบรรทัดการส่งคืนค่าขนส่งหรือแท็บ |
7 | string แสดงสตริงที่สามารถมีฟีดบรรทัดการส่งคืนค่าขนส่งหรือแท็บ |
8 | token แสดงสตริงที่ไม่มีฟีดบรรทัดผลตอบแทนการขนส่งแท็บช่องว่างนำหน้าหรือต่อท้ายหรือช่องว่างหลายช่อง |
ข้อ จำกัด
สามารถใช้ข้อ จำกัด ประเภทต่อไปนี้กับชนิดข้อมูล String -
- enumeration
- length
- maxLength
- minLength
- pattern
- whiteSpace
ชนิดข้อมูลวันที่และเวลาใช้เพื่อแสดงวันที่และเวลาในเอกสาร XML
<xs: date> ชนิดข้อมูล
ชนิดข้อมูล <xs: date> ใช้เพื่อแสดงวันที่ในรูปแบบปปปป - ดด - วว
YYYY - หมายถึงปี
MM - แสดงถึงเดือน
DD - แสดงถึงวัน
<xs: date> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "birthdate" type = "xs:date"/>
การใช้องค์ประกอบใน XML -
<birthdate>1980-03-23</birthdate>
ชนิดข้อมูล <xs: time>
ชนิดข้อมูล <xs: time> ใช้เพื่อแสดงเวลาในรูปแบบ hh: mm: ss
hh - แสดงถึงชั่วโมง
mm - หมายถึงนาที
ss - แสดงถึงวินาที
<xs: time> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "startTime" type = "xs:time"/>
การใช้องค์ประกอบใน XML -
<startTime>10:20:15</startTime>
<xs: datetime> ชนิดข้อมูล
ชนิดข้อมูล <xs: datetime> ใช้เพื่อแสดงวันที่และเวลาในรูปแบบ YYYY-MM-DDThh: mm: ss
YYYY - หมายถึงปี
MM - แสดงถึงเดือน
DD - แสดงถึงวัน
T - แสดงถึงช่วงเวลาเริ่มต้น
hh - แสดงถึงชั่วโมง
mm - หมายถึงนาที
ss - แสดงถึงวินาที
<xs: datetime> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "startTime" type = "xs:datetime"/>
การใช้องค์ประกอบใน XML -
<startTime>1980-03-23T10:20:15</startTime>
ชนิดข้อมูล <xs: duration>
ชนิดข้อมูล <xs: duration> ใช้เพื่อแสดงช่วงเวลาในรูปแบบ PnYnMnDTnHnMnS แต่ละส่วนประกอบเป็นทางเลือกยกเว้น P
P - แสดงถึงส่วนเริ่มต้นของวันที่
nY - หมายถึงปี
nM - แสดงถึงเดือน
nD - แสดงถึงวัน
T - แสดงถึงช่วงเวลาเริ่มต้น
nH - แสดงถึงชั่วโมง
nM - หมายถึงนาที
nS - แสดงถึงวินาที
<xs: duration> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "period" type = "xs:duration"/>
การใช้องค์ประกอบใน xml เพื่อแสดงระยะเวลา 6 ปี 3 เดือน 10 วันและ 15 ชั่วโมง
<period>P6Y3M10DT15H</period>
ประเภทข้อมูลวันที่
ต่อไปนี้เป็นรายการประเภทข้อมูลวันที่ที่ใช้กันทั่วไป
ส. | ชื่อและคำอธิบาย |
---|---|
1. | date แสดงค่าวันที่ |
2. | dateTime แสดงค่าวันที่และเวลา |
3. | duration แสดงช่วงเวลา |
4. | gDay แสดงส่วนหนึ่งของวันที่เป็นวัน (DD) |
5. | gMonth แสดงส่วนหนึ่งของวันที่เป็นเดือน (MM) |
6. | gMonthDay แสดงส่วนหนึ่งของวันที่เป็นเดือนและวัน (MM-DD) |
7. | gYear แสดงส่วนหนึ่งของวันที่เป็นปี (ปปปป) |
8. | gYearMonth แสดงส่วนหนึ่งของวันที่เป็นปีและเดือน (YYYY-MM) |
9. | time แสดงค่าเวลา |
ข้อ จำกัด
สามารถใช้ข้อ จำกัด ประเภทต่อไปนี้กับประเภทข้อมูลวันที่ -
- enumeration
- maxExclusive
- maxInclusive
- minExclusive
- minInclusive
- pattern
- whiteSpace
ชนิดข้อมูลตัวเลขใช้เพื่อแสดงตัวเลขในเอกสาร XML
ชนิดข้อมูล <xs: decimal>
ชนิดข้อมูล <xs: decimal> ใช้เพื่อแสดงค่าตัวเลข รองรับตัวเลขทศนิยมสูงสุด 18 หลัก
<xs: decimal> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "score" type = "xs:decimal"/>
การใช้องค์ประกอบใน XML -
<score>9.12</score>
<xs: integer> ชนิดข้อมูล
ชนิดข้อมูล <xs: integer> ใช้แทนค่าจำนวนเต็ม
<xs: integer> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "score" type = "xs:integer"/>
การใช้องค์ประกอบใน XML -
<score>9</score>
ประเภทข้อมูลตัวเลข
ต่อไปนี้เป็นรายการประเภทข้อมูลตัวเลขที่ใช้กันทั่วไป
ส. | ชื่อและคำอธิบาย |
---|---|
1. | byte จำนวนเต็ม 8 บิตที่ลงนาม |
2. | decimal ค่าทศนิยม |
3. | int จำนวนเต็ม 32 บิตที่ลงนาม |
4. | integer ค่าจำนวนเต็ม |
5. | long จำนวนเต็ม 64 บิตที่ลงนาม |
6. | negativeInteger จำนวนเต็มที่มีค่าลบเท่านั้น (.. , - 2, -1) |
7. | nonNegativeInteger จำนวนเต็มที่มีเฉพาะค่าที่ไม่เป็นลบ (0,1,2, .. ) |
8. | nonPositiveInteger จำนวนเต็มที่มีเฉพาะค่าที่ไม่เป็นบวก (.. , - 2, -1,0) |
9. | positiveInteger จำนวนเต็มที่มีค่าบวกเท่านั้น (1,2, .. ) |
10. | short จำนวนเต็ม 16 บิตที่ลงนาม |
11. | unsignedLong จำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อ |
12. | unsignedInt จำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ |
13. | unsignedShort จำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ |
14. | unsignedByte จำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ |
ข้อ จำกัด
สามารถใช้ข้อ จำกัด ประเภทต่อไปนี้กับประเภทข้อมูลวันที่ -
- enumeration
- fractionDigits
- maxExclusive
- maxInclusive
- minExclusive
- minInclusive
- pattern
- totalDigits
- whiteSpace
XSD มีประเภทข้อมูลที่สำคัญอื่น ๆ เช่น Boolean, binary, และ anyURI.
<xs: boolean> ชนิดข้อมูล
ชนิดข้อมูล <xs: boolean> ใช้เพื่อแทนค่าจริงเท็จ 1 (สำหรับจริง) หรือ 0 (สำหรับเท็จ)
<xs: boolean> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "pass" type = "xs:boolean"/>
การใช้องค์ประกอบใน XML -
<pass>false</pass>
ประเภทข้อมูลไบนารี
ชนิดข้อมูลไบนารีใช้เพื่อแสดงค่าไบนารี ไบนารีสองประเภทใช้กันทั่วไป
base64Binary - แสดงถึงข้อมูลไบนารีที่เข้ารหัส base64
hexBinary - แสดงถึงข้อมูลไบนารีที่เข้ารหัสเลขฐานสิบหก
<xs: hexbinary> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:element name = "blob" type = "xs:hexBinary"/>
การใช้องค์ประกอบใน XML -
<blob>9FEEF</blob>
<xs: anyURI> ชนิดข้อมูล
ชนิดข้อมูล <xs: anyURI> ใช้เพื่อแสดงถึง URI
<xs: anyURI> ตัวอย่าง
การประกาศองค์ประกอบใน XSD -
<xs:attribute name = "resource" type = "xs:anyURI"/>
การใช้องค์ประกอบใน XML -
<image resource = "http://www.tutorialspoint.com/images/smiley.jpg" />
ประเภทข้อมูลตัวเลข
ต่อไปนี้เป็นรายการประเภทข้อมูลตัวเลขที่ใช้กันทั่วไป
ส. | ชื่อและคำอธิบาย |
---|---|
1. | byte จำนวนเต็ม 8 บิตที่ลงนาม |
2. | decimal ค่าทศนิยม |
3. | int จำนวนเต็ม 32 บิตที่ลงนาม |
4. | integer ค่าจำนวนเต็ม |
5. | long จำนวนเต็ม 64 บิตที่ลงนาม |
6. | negativeInteger จำนวนเต็มที่มีค่าลบเท่านั้น (.. , - 2, -1) |
7. | nonNegativeInteger จำนวนเต็มที่มีเฉพาะค่าที่ไม่เป็นลบ (0,1,2, .. ) |
8. | nonPositiveInteger จำนวนเต็มที่มีเฉพาะค่าที่ไม่เป็นบวก (.. , - 2, -1,0) |
9. | positiveInteger จำนวนเต็มที่มีค่าบวกเท่านั้น (1,2, .. ) |
10. | short จำนวนเต็ม 16 บิตที่ลงนาม |
11. | unsignedLong จำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อ |
12. | unsignedInt จำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อ |
13. | unsignedShort จำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ |
14. | unsignedByte จำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ |
ข้อ จำกัด
ข้อ จำกัด ประเภทต่อไปนี้สามารถใช้ได้กับประเภทข้อมูลเบ็ดเตล็ดยกเว้นประเภทข้อมูลบูลีน -
- enumeration
- length
- maxLength
- minLength
- pattern
- whiteSpace