09 - XML Schema
09 - XML Schema
Web Service
Apa itu Skema XML?
• Skema XML adalah sintaks dasar XML
atau skema, yang mendefinisikan
bagaimana sebuah dokumen XML di
mark-up.
• Istilah mark-up bisa dibaca sebagai
model data
XML Schemas
• http://www.w3.org/TR/xmlschema-1/10/2000
• Generalizes DTDs
• Uses XML syntax
• Two documents: structure and datatypes
• http://www.w3.org/TR/xmlschema-1
• http://www.w3.org/TR/xmlschema-2
• XML-Schema is very complex
• Often criticized
• Some alternative proposals
XML Schema
<xsd:element name=“paper” type=“papertype”/>
<xsd:complexType name=“papertype”>
<xsd:sequence>
<xsd:element name=“title” type=“xsd:string”/>
<xsd:element name=“author” minOccurs=“0”/>
<xsd:element name=“year”/>
<xsd: choice> < xsd:element name=“journal”/>
<xsd:element name=“conference”/>
</xsd:choice>
</xsd:sequence> DTD: <!ELEMENT paper (title,author*,year,
</xsd:element> (journal|conference))>
Elements vs Types di dalam
XML Schema
Local <xsd:complexType>
. . . . .
<xsd:element name=“name”>
Names <xsd:complexType>
<xsd:sequence>
di XML <xsd:element name=“firstname”
type=“xsd:string”/>
Schema <xsd:element name=“lastname”
type=“xsd:string”/>
</xsd:sequence>
name berbeda </xsd:element>
. . . .
artinya di dalam </xsd:complexType>
person dan di dalam </xsd:element>
product <xsd:element name=“product”>
<xsd:complexType>
. . . . .
<xsd:element name=“name” type=“xsd:string”/>
</xsd:complexType>
</xsd:element>
Use of Local Names
<xsd:element name=“A” type=“oneB”/>
<xsd:complexType name=“oneB”>
<xsd:choice>
<xsd:complexType name=“onlyAs”> <xsd:element name=“B” type=“xsd:string”/>
<xsd:choice> <xsd:sequence>
<xsd:sequence> <xsd:element name=“A” type=“onlyAs”/>
<xsd:element name=“A” type=“onlyAs”/> <xsd:element name=“A” type=“oneB”/>
<xsd:element name=“A” type=“onlyAs”/> </xsd:sequence>
</xsd:sequence> <xsd:sequence>
<xsd:element name=“A” type=“xsd:string”/> <xsd:element name=“A” type=“oneB”/>
</xsd:choice> <xsd:element name=“A” type=“onlyAs”/>
</xsd:complexType> </xsd:sequence>
</xsd:choice>
</xsd:complexType>
<invoice>
<sku>12345</sku>
<qty>55</qty>
<desc>Left handed monkey wrench</desc>
<price>14.95</price>
</invoice>
Contoh Eksternal DTD
<?xml version=“1.0”>
<!DOCTYPE invoice SYSTEM “d:\data\kulsmt5\ws\invoice.dtd”>
<invoice>
<sku>12345</sku>
<qty>55</qty>
<desc>Left handed monkey wrench</desc>
<price>14.95</price>
</invoice>
Ekternal DTD (invoice.dtd)
<?xml version=“1.0”?>
<!ELEMENT invoice (sku, qty, desc, price) >
<!ELEMENT sku (#PCDATA) >
<!ELEMENT qty (#PCDATA) >
<!ELEMENT desc (#PCDATA) >
<!ELEMENT price (#PCDATA) >
Content Model
• Identifikasi nama elemen dan sifat konten elemen
tersebut
• Contoh ini menyatakan elemen yang kemudian
mendeskripsikan model konten dokumen (XML)
Content
Name model