XML Schema. เนื้อหา. XML Schema เบื้องต้น Data Types Built-in Named Anonymous Simple Element และ Attribute Complex Element. XML Schema. XML schema อธิบายโครงสร้างของเอกสาร XML กำหนด building block ของเอกสาร XML ( เช่นเดียวกับ DTD)
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
เนื้อหา • XML Schema เบื้องต้น • Data Types • Built-in • Named • Anonymous • Simple Element และ Attribute • Complex Element
XML Schema • XML schema อธิบายโครงสร้างของเอกสาร XML • กำหนด building block ของเอกสาร XML (เช่นเดียวกับ DTD) • XML Schema language :XML Schema Definition (XSD) • XML Schema: กำหนด • elements และ attributes ที่จะปรากฏในเอกสาร • ว่า elements ใดเป็น child elements • ลำดับ และจำนวนของ child elements • ว่า element ใด empty หรือสามารถมี text ได้ • data types สำหรับ elements และ attributes • default value และ fixed values สำหรับ elements และ attributes
DTDs? • ไม่จัดเป็น XML syntax • ไม่มีการกำหนด data type • ไม่สนับสนุน namespaces • ไม่สามารถรองรับการขยายขอบเขต (extensibility) ได้ในอนาคต • ไม่สามารถใช้ mixed content ได้ • ไม่สามารถกำหนดจำนวน และลำดับของ child elements ได้ • element names ใน DTD จัดเป็น global name • …
Solution • เขียนนิยามภาษา เป็น XML • อนุญาตให้มีการควบคุมการจัดการ contents ของเอกสาร • เอกสาร XML จัดเป็น • complex data type • นิยามภาษา XML จัดเป็น • complex data type specification
XML Schema • ถูกเสนอโดย Microsoft แต่ปัจจุบันเป็น W3C recommendation ตั้งแต่ May 2001 • เป็นเอกสารที่แยกออกจากเอกสาร XML เสมอ • ไม่มี internal option • เขียนด้วย XML
สนับสนุนการจัดการ Data Types • จุดเด่นของ XML Schemas คือ การสนับสนุนการจัดการ data type • การสนับสนุนการจัดการ data type ทำให้: • ง่ายต่อการอธิบายเนื้อหา (content) ของเอกสารที่อนุญาตให้มีได้ • ง่ายต่อการ validate ความถูกต้องของข้อมูล • ง่ายต่อการจัดการข้อมูล ร่วมกับฐานข้อมูล • ง่ายต่อการกำหนด data facets (ข้อจำกัดของข้อมูล - restrictions on data) • ง่ายต่อการกำหนด patterns ของข้อมูล (data formats) • ง่ายต่อการ convert ข้อมูลระหว่าง data types ที่แตกต่างกัน
ใช้ไวยากรณ์ของ XML • จุดเด่นอีกข้อหนิ่งของ XML Schema คือเขียนด้วย XML • การเขียน XML Schemas ด้วย XML ทำให้ : • ไม่ต้องเรียนภาษาอื่นเพิ่มเติม • ใช้ XML editor สำหรับ edit แฟ้ม Schema ได้ • ใช้ XML parser สำหรับ parse แฟ้ม Schema ได้ • จัดการ Schema ด้วย XML DOM ได้ • สามารถเปลี่ยนรูป (transform) Schema ด้วย XSLT ได้
รองรับการขยายขอบเขต (extensible) • XML Schemas รองรับการขยายขอบเขตได้ในอนาคต (extensible) ได้เช่นเดียวกับ XML เนื่องจากเขียนด้วย XML • หากนิยามของ Schema รองรับการขยายขอบเขตได้ ทำให้: • สามารถนำ Schema ไปใช้ใน Schemas อื่นๆ ได้ • สร้าง data types ขิ้นใช้งาน โดย derived มาจาก standard types • อ้างอิง schema ได้หลาย schema จากเอกสารเดิม
Example 1, DTD <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> • note.dtd
Example 1, XML <?xml version="1.0"?> <!DOCTYPE note SYSTEM "http://www.w3schools.com/dtd/note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> • note.xml
User-derived data types • complex data types อาจสร้างได้โดยไม่จำเป็นต้องอาศัย data type เดิมที่มีอยู่แล้ว • simple data types ใหม่ ต้อง derived จาก simple data types เดิมที่มีอยู่
User-derived simple data types derivation อาจเป็น • extension • list : list ของ values ของ data type เดิมที่มีอยู่ • union: อนุญาตให้กำหนด values จาก data types ตั้งแต่ 2 หรือมากกว่า • restriction : จำกัดค่าที่อนุญาตให้ใช้ • maximum value (เช่น 100) • minimum value (เช่น 50) • length (เช่น ความยาวของ string หรือ list) • จำนวน digits • enumeration (list ของ values) • pattern • ข้อจำกัด (constraints) เรียกว่าเป็น facets
Simple element • simple element • XML element ที่สามารถมีได้เฉพาะ text เท่านั้น ไม่สามารถมี elements หรือ attributes อื่นๆ ได้ • แต่ text สามารถเป็นได้หลาย types ที่แตกต่างกัน เช่นสามารถเป็น types ใดๆ ที่อยู่ใน XML Schema definition (boolean, string, date, etc.), หรือ เป็น custom type ที่ประกาศขิ้นใช้งานเอง • สามารถเพิ่มข้อจำกัด (facets) ให้กับ data type เพื่อที่จะจำกัดค่าของข้อมูล (content) และ สามารถกำหนดให้ข้อมูล มีรูปแบบตรงกับ pattern ที่กำหนดไว้ล่วงหน้า
Simple element • ไวยากรณ์ของ simple element <xs:element name="xxx" type="yyy"/> • ตัวอย่าง เอกสาร XML <lastname>Refsnes</lastname> <age>34</age> <dateborn>1968-03-27</dateborn> • ตัวอย่าง Schema <xs:element name="lastname" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="dateborn" type="xs:date"/>
Simple data type • การเปลี่ยนชื่อของ data type เดิมที่มีอยู่ <xs:element name="assigned-grade" type="xs:string"> • หรือ ข้อจำกัด (restriction) ของ type เดิมที่มีอยู่ • เช่น strings ที่เริ่มต้นด้วย "D"
Restriction on Values • ตัวอย่างการกำหนด element ชื่อ "age" พร้อมกับข้อจำกัด (restriction) โดยค่าของ age อยู่ระหว่าง 0 และ 100 <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType> </xs:element>
Restriction on Values • ตัวอย่างการกำหนด element Type ชื่อ “drinkingAge" พร้อมกับข้อจำกัด (restriction) ให้มีค่าเท่ากับ 21 <xs:simpleType name="drinkingAge"> <xs:restriction base="xs:positiveInteger"> <xs:minInclusive value="21"/> </xs:restriction> </xs:simpleType>
Restriction on a set of Values • อีกรูปแบบของการกำหนด element ชื่อ "car": <xs:element name="car" type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType>
Restriction on a set of Values • ใช้ enumeration เพื่อจำกัดค่าของ XML element เป็น set ของค่าที่เป็นไปได้ • ตัวอย่างการกำหนด element ชื่อ "car": <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>
Restriction on a series of Values • ใช้ pattern เพื่อจำกัดเนื้อหาของ XML element สำหรับกำหนด series ของ ตัวเลข หรือ ตัวอักษรที่สามารถใช้งานได้ • Regular expressions • derived มาจาก perl • ตัวอย่างการกำหนด element ชื่อ "letter": <xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Restriction on a series of Values • ใช้ pattern เพื่อจำกัดเนื้อหาของ XML element สำหรับกำหนด series ของ ตัวเลข หรือ ตัวอักษรที่สามารถใช้งานได้ • ตัวอย่างการกำหนด element ชื่อ "letter": <xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element> • ค่าที่เป็นไปได้ คือ ตัวอักษร LOWERCASE ตัวใดตัวหนี่ง มีค่าตั้งแต่ a ถีง z
Restriction on a series of Values • ค่าที่เป็นไปได้ คือ ตัวอักษร UPPERCASE สามตัว มีค่าตั้งแต่ A ถีง Z <xs:pattern value="[A-Z][A-Z][A-Z]"/> • ค่าที่เป็นไปได้ คือ ตัวอักษร LOWERCASE หรือ UPPERCASE สามตัว มีค่าตั้งแต่ A ถีง Z หรือ a ถีง z <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> • ค่าที่เป็นไปได้ คือ ตัวอักษรตัวใดตัวหนี่งจาก x, y, z เท่านั้น <xs:pattern value="[xyz]"/> • ค่าที่เป็นไปได้ คือ ตัวเลขจำนวน 5 ตัว มีค่าอยู่ระหว่าง 0-9 เท่านั้น <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
Restriction on a series of Values • * : Zero or more occurences <xs:pattern value="([a-z])*"/> • + : One or More occurences <xs:pattern value="([a-z][A-Z])+"/> • | :male or female <xs:pattern value="male|female"/> • ตัวอักษร 8 ตัวเรียงกัน โดยที่ตัวอักษรเหล่านั้นจะต้องเป็น lowercase หรือ uppercase จาก a ถีง z, หรือ ตัวเลขตั้งแต่ 0 ถีง 9 (อาจใช้กับ password) <xs:pattern value="[a-zA-Z0-9]{8}"/>
Restriction on Whitespaces • กำหนดข้อจำกัดของ whiteSpace เป็น "preserve“ หมายความว่า XML processor จะไม่จัดการใดๆ กับ white space characters <xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Restriction on Whitespaces • กำหนดข้อจำกัดของ whiteSpace เป็น "replace“ หมายความว่า XML processor จะแทนที่ white space characters ทุกตัว (line feeds, tabs, spaces, และ carriage returns) ด้วย spaces <xs:whiteSpace value="replace"/> • กำหนดข้อจำกัดของ whiteSpace เป็น "collapse“ หมายความว่า XML processor จะนำ white space characters ทุกตัวออก (line feeds, tabs, spaces, carriage returns จะถูกแทนที่ด้วย spaces รวมทั้ง spaces ที่นำและตามมาจะถูกเอาออกด้วย ทำให้ multiple spaces กลายเป็น single space) <xs:whiteSpace value="collapse"/>
Complex element • complex element สามารถมี elements อื่นๆ และ/หรือ attributes ได้ • มี complex elements 4 ประเภท: • empty elements • elements ที่มี elements อื่นๆ • elements ที่มีเฉพาะ text • elements ที่มีทั้ง elements อื่นๆ และ text • Note: แต่ละ elements เหล่านี้ อาจมี attributes ได้เช่นกัน
ตัวอย่างของ Complex element • "product", เป็น empty element : <product pid="1345"/> • "employee", มีเฉพาะ elements อื่นๆ : <employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee> • "food", มีเฉพาะ text เท่านั้น : <food type="dessert">Ice cream</food> • "description", มีทั้ง elements และ text: <description> It happened on <date lang="norwegian">03.03.99</date>… </description>
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.