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