xml schema
Download
Skip this Video
Download Presentation
XML Schema

Loading in 2 Seconds...

play fullscreen
1 / 82

XML Schema - PowerPoint PPT Presentation


  • 167 Views
  • Uploaded on

XML Schema. เนื้อหา. XML Schema เบื้องต้น Data Types Built-in Named Anonymous Simple Element และ Attribute Complex Element. XML Schema. XML schema อธิบายโครงสร้างของเอกสาร XML กำหนด building block ของเอกสาร XML ( เช่นเดียวกับ DTD)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'XML Schema' - niabi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
เนื้อหา
  • XML Schema เบื้องต้น
  • Data Types
    • Built-in
    • Named
    • Anonymous
  • Simple Element และ Attribute
  • Complex Element
xml schema1
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
slide4
DTDs?
  • ไม่จัดเป็น XML syntax
  • ไม่มีการกำหนด data type
  • ไม่สนับสนุน namespaces
  • ไม่สามารถรองรับการขยายขอบเขต (extensibility) ได้ในอนาคต
    • ไม่สามารถใช้ mixed content ได้
    • ไม่สามารถกำหนดจำนวน และลำดับของ child elements ได้
    • element names ใน DTD จัดเป็น global name
solution
Solution
  • เขียนนิยามภาษา เป็น XML
  • อนุญาตให้มีการควบคุมการจัดการ contents ของเอกสาร
  • เอกสาร XML จัดเป็น
    • complex data type
  • นิยามภาษา XML จัดเป็น
    • complex data type specification
xml schema2
XML Schema
  • ถูกเสนอโดย Microsoft แต่ปัจจุบันเป็น W3C recommendation ตั้งแต่ May 2001
  • เป็นเอกสารที่แยกออกจากเอกสาร XML เสมอ
    • ไม่มี internal option
  • เขียนด้วย XML
data types
สนับสนุนการจัดการ Data Types
  • จุดเด่นของ XML Schemas คือ การสนับสนุนการจัดการ data type
  • การสนับสนุนการจัดการ data type ทำให้:
    • ง่ายต่อการอธิบายเนื้อหา (content) ของเอกสารที่อนุญาตให้มีได้
    • ง่ายต่อการ validate ความถูกต้องของข้อมูล
    • ง่ายต่อการจัดการข้อมูล ร่วมกับฐานข้อมูล
    • ง่ายต่อการกำหนด data facets (ข้อจำกัดของข้อมูล - restrictions on data)
    • ง่ายต่อการกำหนด patterns ของข้อมูล (data formats)
    • ง่ายต่อการ convert ข้อมูลระหว่าง data types ที่แตกต่างกัน
slide8
ใช้ไวยากรณ์ของ XML
  • จุดเด่นอีกข้อหนิ่งของ XML Schema คือเขียนด้วย XML
  • การเขียน XML Schemas ด้วย XML ทำให้ :
    • ไม่ต้องเรียนภาษาอื่นเพิ่มเติม
    • ใช้ XML editor สำหรับ edit แฟ้ม Schema ได้
    • ใช้ XML parser สำหรับ parse แฟ้ม Schema ได้
    • จัดการ Schema ด้วย XML DOM ได้
    • สามารถเปลี่ยนรูป (transform) Schema ด้วย XSLT ได้
extensible
รองรับการขยายขอบเขต (extensible)
  • XML Schemas รองรับการขยายขอบเขตได้ในอนาคต (extensible) ได้เช่นเดียวกับ XML เนื่องจากเขียนด้วย XML
  • หากนิยามของ Schema รองรับการขยายขอบเขตได้ ทำให้:
    • สามารถนำ Schema ไปใช้ใน Schemas อื่นๆ ได้
    • สร้าง data types ขิ้นใช้งาน โดย derived มาจาก standard types
    • อ้างอิง schema ได้หลาย schema จากเอกสารเดิม
example 1 xml
Example 1, XML

"http://www.w3schools.com/dtd/note.dtd">

Tove

Jani

Reminder

Don't forget me this weekend!

  • note.xml
example 1 schema
Example 1, Schema

targetNamespace="http://www.w3schools.com"

xmlns="http://www.w3schools.com"

elementFormDefault="qualified">

  • note.xsd
example 1 xml1
Example 1, XML

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.w3schools.com note.xsd">

Tove

Jani

Reminder

Don't forget me this weekend!

  • note.xml
schemas and namespaces
Schemas and namespaces
  • schema
    • ใช้ elements จาก application ใดๆ
      • the XML Schema language
    • ในการกำหนด element ของ application อื่นๆ
  • ใช้ Namespaces กับ elements
    • ไม่ใช่ values
  • Namespace ของ element นำไปใช้ได้กับ attributes
    • สามารถมีหลาย attributes ที่ namespaces แตกต่างกัน
data type
data type
  • โครงสร้างลำดับชั้นของ type
    • Simple Data Type
      • string
      • boolean, e.g., true
      • anyUri, e.g., http://www.w3schools.com/home.html
      • duration, e.g., P1Y2M3DT10H5M49.3S
      • gYear, e.g., 1972
      • float, e.g., 123E99
      • decimal, e.g., 123456.789
      • ...
    • Complex Data Types
built in data types
Built-in data types
  • เป็นส่วนหนิ่งของ schema language
  • Base types/Primitive types
    • 19 types พื้นฐาน
    • Ex: string, decimal
  • Derived types
    • มากกว่า 25 types ที่เรียกใช้ base types
    • Ex: ID, positiveInteger
primitive date and time types
Primitive date and time types
  • date, เช่น 1994-04-27
  • time, เช่น 16:50:00+01:00 หรือ 15:50:00Z หากเป็น Co-ordinated Universal Time (UTC)
  • dateTime, เช่น 1918-11-11T11:00:00.000+01:00
  • duration, เช่น P2Y1M3DT20H30M31.4159S
  • วันที่แบบปฏิทิน"Gregorian" (1582 โดย Pope Gregory XIII):
    • gYear, เช่น 2001
    • gYearMonth, เช่น 2001-01
    • gMonthDay, เช่น --12-25 (hyphen สำหรับปีที่หายไป)
    • gMonth, เช่น --12-- (hyphens สำหรับปี และวันที่หายไป)
    • gDay, เช่น ---25 (มี 3 hyphens เท่านั้น)
built in derived string types
Built-in derived string types

string

  • normalizedString (newline, tab, carriage-return ถูกแปลงเป็น spaces)
  • token (spaces ที่ติดกันถูกจัดเป็น space เดียว; spaces ก่อนหน้า และตามหลังจะถูกนำออกไป)
    • language, เช่น en
      • NMTOKEN, เช่น XYZ
      • name, เช่น my:name
        • NCNAME ("non-colonized" name), เช่น myName
          • ID
          • IDREF
          • ENTITY
built in derived numeric types
Built-in derived numeric types
  • derived จาก decimal
    • Integer (decimal ทีไม่มี fractional), เช่น -123456
      • nonPositiveInteger, เช่น 0, -1
        • negativeInteger, เช่น -1
      • nonNegativeInteger, เช่น 0, 1
        • positiveInteger, เช่น 1
        • ...
      • ...
user derived data types
User-derived data types
  • complex data types อาจสร้างได้โดยไม่จำเป็นต้องอาศัย data type เดิมที่มีอยู่แล้ว
  • simple data types ใหม่ ต้อง derived จาก simple data types เดิมที่มีอยู่
user 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
  • 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 element1
Simple element
  • ไวยากรณ์ของ simple element

  • ตัวอย่าง เอกสาร XML

Refsnes

34

1968-03-27

  • ตัวอย่าง Schema

simple data type
Simple data type
  • การเปลี่ยนชื่อของ data type เดิมที่มีอยู่

type="xs:string">

  • หรือ ข้อจำกัด (restriction) ของ type เดิมที่มีอยู่
    • เช่น strings ที่เริ่มต้นด้วย "D"
restriction
Restriction
  • มักนำไปใช้ประโยชน์ได้มาก
  • อนุญาตให้ทำการออกแบบเพื่อระบุให้ชัดเจนได้ว่า values ใดบ้างที่ legal
    • prices จะต้องเป็น non-negative
    • SSN จะต้องกำหนดตามรูปแบบที่ชัดเจน แน่นอน
    • in-stock จะต้องเป็น yes หรือ no
    • และอื่นๆ
restriction1
Restriction
  • จำกัด base type
    • ขี้นกับ "facets"
  • facets ที่แตกต่างกันมีไว้สำหรับ data type ที่แตกต่างกัน
restriction on values
Restriction on Values
  • ตัวอย่างการกำหนด element ชื่อ "age" พร้อมกับข้อจำกัด (restriction) โดยค่าของ age อยู่ระหว่าง 0 และ 100

restriction on values1
Restriction on Values
  • ตัวอย่างการกำหนด element Type ชื่อ “drinkingAge" พร้อมกับข้อจำกัด (restriction) ให้มีค่าเท่ากับ 21

restriction on a set of values
Restriction on a set of Values
  • อีกรูปแบบของการกำหนด element ชื่อ "car":

restriction on a set of values1
Restriction on a set of Values
  • ใช้ enumeration เพื่อจำกัดค่าของ XML element เป็น set ของค่าที่เป็นไปได้
  • ตัวอย่างการกำหนด element ชื่อ "car":

example enumeration
Example: enumeration
  • ตัวอย่างการกำหนด element type ชื่อ “grade":

restriction on a series of values
Restriction on a series of Values
  • ใช้ pattern เพื่อจำกัดเนื้อหาของ XML element สำหรับกำหนด series ของ ตัวเลข หรือ ตัวอักษรที่สามารถใช้งานได้
  • Regular expressions
    • derived มาจาก perl
  • ตัวอย่างการกำหนด element ชื่อ "letter":

restriction on a series of values1
Restriction on a series of Values
  • ใช้ pattern เพื่อจำกัดเนื้อหาของ XML element สำหรับกำหนด series ของ ตัวเลข หรือ ตัวอักษรที่สามารถใช้งานได้
  • ตัวอย่างการกำหนด element ชื่อ "letter":

    • ค่าที่เป็นไปได้ คือ ตัวอักษร LOWERCASE ตัวใดตัวหนี่ง มีค่าตั้งแต่ a ถีง z
restriction on a series of values2
Restriction on a series of Values
  • ค่าที่เป็นไปได้ คือ ตัวอักษร UPPERCASE สามตัว มีค่าตั้งแต่ A ถีง Z

  • ค่าที่เป็นไปได้ คือ ตัวอักษร LOWERCASE หรือ UPPERCASE สามตัว มีค่าตั้งแต่ A ถีง Z หรือ a ถีง z

  • ค่าที่เป็นไปได้ คือ ตัวอักษรตัวใดตัวหนี่งจาก x, y, z เท่านั้น

  • ค่าที่เป็นไปได้ คือ ตัวเลขจำนวน 5 ตัว มีค่าอยู่ระหว่าง 0-9 เท่านั้น

restriction on a series of values3
Restriction on a series of Values
  • * : Zero or more occurences

  • + : One or More occurences

  • | :male or female

  • ตัวอักษร 8 ตัวเรียงกัน โดยที่ตัวอักษรเหล่านั้นจะต้องเป็น lowercase หรือ uppercase จาก a ถีง z, หรือ ตัวเลขตั้งแต่ 0 ถีง 9 (อาจใช้กับ password)

restriction on whitespaces
Restriction on Whitespaces
  • กำหนดข้อจำกัดของ whiteSpace เป็น "preserve“ หมายความว่า XML processor จะไม่จัดการใดๆ กับ white space characters

restriction on whitespaces1
Restriction on Whitespaces
  • กำหนดข้อจำกัดของ whiteSpace เป็น "replace“ หมายความว่า XML processor จะแทนที่ white space characters ทุกตัว (line feeds, tabs, spaces, และ carriage returns) ด้วย spaces

  • กำหนดข้อจำกัดของ whiteSpace เป็น "collapse“ หมายความว่า XML processor จะนำ white space characters ทุกตัวออก (line feeds, tabs, spaces, carriage returns จะถูกแทนที่ด้วย spaces รวมทั้ง spaces ที่นำและตามมาจะถูกเอาออกด้วย ทำให้ multiple spaces กลายเป็น single space)

restriction on length
Restriction on Length
  • ใช้ length กำหนดความยาวของ element
  • ใช้ maxLength และ minLength เพื่อจำกัดความยาวของค่า ในแต่ละ element

user defined types
User-defined types
  • สามารถใช้ complexType กำหนดให้เป็น user-defined type
    • มักเรียกว่า "standalone"
  • Simple types สามารถ derived ได้จาก built-in types
deriving types
Deriving types
  • DTDs ไม่อนุญาต types restrictions
    • นอกจาก enumeration, CDATA, token
      • สำหรับ attributes
    • PCDATA
      • สำหรับ content
  • Schemas มี built-in types
    • สามารถสร้างขื้นใช้งานใหม่ได้
user derived simple data types1
User-derived simple data types

derivation อาจเป็น

  • extension
    • list : sequence ของ values ของ data type เดิมที่มีอยู่
    • union: กำหนด values จาก data types ตั้งแต่ 2 หรือมากกว่า
  • restriction : จำกัดค่าที่อนุญาตให้ใช้
      • maximum value (เช่น 100)
      • minimum value (เช่น 50)
      • length (เช่น ความยาวของ string หรือ list)
      • จำนวน digits
      • enumeration (list ของ values)
      • pattern

ข้อจำกัดด้านบน เรียกว่าเป็น facets

derivation operations
Derivation operations
  • list
    • sequence ของ values ของ data type เดิมที่มีอยู่
  • union
    • รวม 2 types เข้าด้วยกัน : กำหนด values จาก data types ตั้งแต่ 2 หรือมากกว่า
      • ได้ทั้ง 2 แบบ
  • restriction
    • สร้างข้อจำกัดให้กับค่าที่เป็น legal values
slide45
List

PN334-04 PN223-89 PQ1112-03

  • จะต้องแยกจากกันด้วย spaces
    • อาจดีกว่าหากใช้ในโครงสร้าง document
    • partList -> partNo*
union
Union
  • อนุญาตให้ใช้ data ได้ ทั้งสองแบบ
  • ตัวอย่าง

  • Database
    • ค่าอาจเป็น null
inheritance
Inheritance
  • ข้อจำกัดของ facet สามารถ inherited ได้
    • type derivations ใหม่ จะต้องคำนึงถึงของเดิม
      • สามารถเพิ่มเติมใหม่ได้
    • แต่ derivations ใหม่สามารถเปลี่ยนแปลง facets อื่นๆ ได้
  • ตัวอย่างเช่น
    • monetary type : fractionDigits facet = 2
    • loan amount type :
      • monetary type +
      • maxValue = 100000
    • car loan amount :
      • loan amount type +
      • maxValue = 30000
fixed facets
Fixed Facets
  • อาจป้องกัน users จากการเปลี่ยนแปลง facet ได้
    • fixed="true" ในการประกาศ facet
    • เหมือนกับ "final" keyword ใน Java
  • Example

  • minInclusive ไม่สามารถเปลี่ยนแปลงได้เมื่อถูก inherited
    • ไม่สามารถกำหนดค่าที่น้อยกว่าได้
    • "fixed" attribute หมายถิง ไม่สามารถเปลี่ยนแปลงย้อนกลับได้
complex element
Complex element
  • complex element สามารถมี elements อื่นๆ และ/หรือ attributes ได้
  • มี complex elements 4 ประเภท:
    • empty elements
    • elements ที่มี elements อื่นๆ
    • elements ที่มีเฉพาะ text
    • elements ที่มีทั้ง elements อื่นๆ และ text
  • Note: แต่ละ elements เหล่านี้ อาจมี attributes ได้เช่นกัน
complex element1
ตัวอย่างของ Complex element
  • "product", เป็น empty element :

  • "employee", มีเฉพาะ elements อื่นๆ :

John

Smith

  • "food", มีเฉพาะ text เท่านั้น :

Ice cream

  • "description", มีทั้ง elements และ text:

It happened on

03.03.99

complex element2
Complex element

compositor

element declarations

attribute declarations

inidcators
Inidcators
  • Order indicators:
    • Choice
    • Sequence
    • All
  • Occurrence indicators:
    • maxOccurs
    • minOccurs
  • Group indicators:
    • Group name
    • attributeGroup name
compositor
Compositor
  • sequence
  • choice
  • all
sequence compositor
Sequence compositor
  • เหมือนกับ "," ใน DTD
  • DTD

  • Schema

elements sequences
Elements ใน sequences
  • สามารถกำหนด optional / จำนวนครั้งของ element
  • ?

  • *

  • +

  • หรือ…

choice compositor
Choice compositor
  • เหมือนกับ "|" ใน DTD
  • DTD

  • Schema

all compositor
All compositor
  • เปรียบเทียบไม่ได้กับ simple DTD แบบใดๆ
  • DTD

  • Schema

nesting
Nesting
  • สามารถนำ Compositors มาใช้ร่วมกันได้
  • DTD

  • Schema

complex types elements
Complex Types สำหรับ Elements
  • "employee"

John

Smith

  • employee element สามารถประกาศโดยตรงโดยตั้งชื่อ element ดังตัวอย่างต่อไปนี้

complex types elements1
Complex Types สำหรับ Elements
  • employee element สามารถมี type attribute ที่อ้างอิง ชื่อของ complex type

  • และสามารถมีหลาย elementที่อ้างอิง ชื่อของ complex type

employee complex element
“employee” Complex element
  • ใช้ complex type เดิมที่มีอยู่ มาเพิ่มเติม elements ตัวอย่างเช่น

complex types empty elements
Complex Types สำหรับ Empty Elements
  • empty XML element:

  • การกำหนด type ที่ไม่มี content ต้องกำหนด type ที่อนุญาตให้เนื้อหา (content) มีเฉพาะ elements เท่านั้น แต่ไม่ประกาศ elements ใดๆ :

complex types empty elements1
Complex Types สำหรับ Empty Elements
  • จากตัวอย่าง product มีการกำหนด complexType ให้มี complexContent เช่น มีเนื้อหาเฉพาะ elements เท่านั้น
  • หรือ อาจประกาศ product element ให้สั้นลง เช่น :

  • หรือ อาจกำหนดชื่อให้กับ complexType และให้ "product" element มี type attribute ที่อ้างอิงชื่อของ complexType (อาจมีได้หลาย elements ที่อ้างอิงcomplex type เดียวกัน) :

complex types mixed content
Complex Types สำหรับ Mixed Content
  • XML element ชื่อ "letter" มีทั้ง elements และ text:

Dear Mr.John Smith.

Your order 1032

will be shipped on 2001-07-13.

  • สังเกตว่า text ปรากฏอยู่ระหว่าง elements โดย "name", "orderid", และ "shipdate" เป็น Child element ของ "letter" ประกาศ Schema ได้ดังนี้

complex types mixed content1
Complex Types สำหรับ Mixed Content
  • หรือ อาจกำหนดชื่อให้กับ complexType และให้ “letter" element มี type attribute ที่อ้างอิงชื่อของ complexType (อาจมีได้หลาย elements ที่อ้างอิงcomplex type เดียวกัน)

mixed content
Mixed content
  • XML Schema ไม่สามารถควบคุมตำแหน่งของ text ที่ปรากฏได้
  • ตัวอย่าง เอกสาร #1 :

Dear Mr.John Smith.

Your order 1032

will be shipped on 2001-07-13.

  • ตัวอย่าง เอกสาร #2 :

Dear Mr.John Smith.

On 2001-07-13, Your order 1032 will be shipped.

attributes
Attributes
  • element ที่มี attributes จะถูกนิยามเป็น complex type
    • Simple elements ไม่มี attributes
    • หาก element มี attributes จะจัดเป็น complex type
    • แต่สำหรับ attribute นั้นจะถูกประกาศเป็น simple type เสมอ
  • DTD attribute types
    • CDATA, enumeration, token
  • Schema
    • สามารถเป็น basic type หรือ derived types ก็ได้
    • สามารถเป็น user-defined types ได้อีกด้วย
attributes1
การประกาศใช้งาน Attributes
  • การประกาศใช้งาน

    • xxx เป็นชื่อของ attribute
    • yyy เป็น data type ของ attribute
  • ตัวอย่าง XML element ที่มี attribute

Smith

  • ตัวอย่างการนิยาม simple attribute ของ element ด้านบน:

attribute
การประกาศ Attribute
  • ส่วนหนิ่งของ complex type
    • follows compositor
    • (one exception)
  • การประกาศ

  • หาก attribute เป็น complex type?
    • ??
example
Example

id CDATA #REQUIRED>

type="xs:string" use="required"/>

local naming
Local naming
  • หากต้องการนำ element name มาใช้ใหม่
    • ในตำแหน่งของโครงสร้างที่แตกต่างกัน
  • ตัวอย่างเช่น
      • ไม่จัดเป็น DTD ที่รูปแบบถูกต้อง
    • schema?
example 2 xml
Example 2, XML

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="shiporder.xsd">

John Smith

Ola Nordmann

Langgt 23

4000 Stavanger

Norway

Empire Burlesque

Special Edition

1

10.90

Hide your heart

1

9.90

slide74

type="xs:positiveInteger"/>

exercise xml
Exercise, XML

Jane Doe

A

John Doe

B

exercise dtd
Exercise, DTD

assignment CDATA #IMPLIED>

id CDATA #REQUIRED>

exercise data types
Exercise, Data types
  • grades
    • กลุ่มของ items ชนิด grade
    • Student มีได้มากที่สุด 40 items
  • grade
    • โครงสร้างที่มี student และ grade ที่มีการกำหนดค่า
  • student
    • โครงสร้างที่มี id และ text
    • อาจจำกัดค่า student id
  • assigned-grade จัดเป็น text
    • อาจจำกัดค่าเป็น A-D,F,I
slide82
สรุป
  • จุดเด่นของ XML Schema
  • การเขียน XML Schema
ad