xml schema chao-hsien chu, ph.d. school of information sciences and technology the pennsylvania...
TRANSCRIPT
XML SchemaXML Schema
Chao-Hsien Chu, Ph.D.School of Information Sciences and Technology
The Pennsylvania State University
ElementTypeAttributeType
XML Declar.
Schema Declar.
Purposes of DTDPurposes of DTD
What elements should be presented?
How many of each element were required?
What kind of element content was permitted?
In what order the elements should appear?
DTD is the modeling language for XML, which define the structure of a XML document. An DTD file provides the following information:
Components of XML SystemsComponents of XML Systems
XMLParser
(Processor)
XMLApplication
XMLDocument(Contents)
XMLDTD
(Rule)
Well-Formed(Syntax)
Validate(Structure)
What is XML SchemaWhat is XML Schema
DTD is the original modeling language for XML. It has the following deficiencies:
- DTD did not follow the regular XML syntax,
thus it requires a special parser to validate.
- DTD did not support much of data types.
- DTD is weak in extensibility.
Schema is the new modeling language for XML,which closely follows XML syntax.
Problems with DTDProblems with DTD
If the DTD statement for element Quantity is:
<!ELEMENT Quantity (#PCDATA)>
Then which of the followings syntaxes are valid?
<Quantity>5</Quantity> _________
<Quantity>hello</Quantity> _________
<Quantity>5.5</quantity> _________
Facts About XML SchemaFacts About XML Schema Schema documents use XML syntax and are
therefore XML documents.
Schemas are XML documents that conform to DTDs, which define the structure of a XML document.
Many organizations and individuals are creating DTDs and schemas for a broad range of categories (e.g., financial transactions, medical prescriptions, etc.). These collections called repositories which are often available free for download from the web.
Why Schema is Better?Why Schema is Better?
XML Schema has Support for Data Types
XML Schemas use XML Syntax
XML Schemas Secure Data Communication
XML Schemas are Extensible
Well-Formed is not Enough
XML Example (1)XML Example (1)
<?xml version="1.0" encoding="ISO-8859-1"?><!– Root Element --><shiporder orderid="889923"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="shiporder.xsd"> <orderperson>John Smith</orderperson> <shipto> <name>Ola Nordmann</name> <address>Langgt 23</address> <city>4000 Stavanger</city> <country>Norway</country> </shipto>
XML Example (2)XML Example (2)
<item> <title>Empire Burlesque</title> <note>Special Edition</note> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item>
</shiporder>
Components of SchemaComponents of Schema
XML Declaration
Comments
Schema Declaration
ElementType Declarations
AttributeType Declarations
Example of DTD File (1)Example of DTD File (1)
<!ELEMENT shiporder (orderperson, shipto, item+)>
<!ATTLIST orderid CDATA #REQUIRED>
<!ELEMENT orderperson (#PCDATA)>
<!ELEMENT shipto (name, address, city, country)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT country (#PCDATA)>
Attribute ListDeclarations
Element TypeDeclarations
Example of DTD File (1)Example of DTD File (1)
<!ELEMENT item (title, note?, quantity, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT note (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
Element TypeDeclarations
XML Schema (1)XML Schema (1)
<?xml version="1.0" encoding="ISO-8859-1" ?><!– Root Element --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="shiporder"> <xs:complexType> <xs:sequence> <xs:element name="orderperson" type="xs:string"/> <xs:element name="shipto"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
XML Schema (2)XML Schema (2)<xs:element name="item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="note" type="xs:string" minOccurs="0"/> <xs:element name="quantity" type="xs:positiveInteger"/> <xs:element name="price" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="orderid" type="xs:string" use="required"/> </xs:complexType></xs:element></xs:schema>
XML DeclarationXML Declaration
Is used to provide information regarding processing such as processor (name and version), of the processor
Syntax: <?processor instruction = “value of instruction” ?>
Examples: <?xml version = “1.0” ?> <?xml version="1.0" encoding="Big5" ?> <?xml version = "1.0" standalone = "no"?>
CommentsComments
A place to write a note for reminding, simple documentation, or commenting out codes for debugging, etc., which will not be seen by the end users.
<!-- This is a comment area
--> You can use any character inside the comment
area except “--” itself
There is no limitation on the length of the comment area.
Selected XML Schema Data TypesSelected XML Schema Data Types boolean. 0 (false) or 1 (true).
char. A single character.
string. A series of characters.
float. A real number.
int. A whole number.
date. A date formatted as YYYY-MM-DD.
time. A time formatted as HH-MM-SS.
id. Text that uniquely identifies an element or attribute.
idref. A reference to an id.
enumeration. A series of values from which only one may be chosen.
Date and Time Data TypesDate and Time Data Types
Name Description
Date Defines a date value
dateTimeDefines a date and time value
Duration Defines a time interval
gDay Defines a part of a date - the day (DD)
gMonth Defines a part of a date - the month (MM)
gMonthDay Defines a part of a date - the month and day (MM-DD)
gYear Defines a part of a date - the year (CCYY)
gYearMonth Defines a part of a date - the year and month (CCYY-MM)
Time Defines a time value
Numeric Data TypesNumeric Data Types Name Description
Byte A signed 8-bit integerDecimal A decimal valueInt A signed 32-bit integerInteger An integer valueLong A signed 64-bit integernegativeInteger An integer containing only negative values ( .., -2, -1.)nonNegativeInteger An integer containing only non-negative values (0, 1, 2, ..)nonPositiveInteger An integer containing only non-positive values (.., -2, -1, 0)positiveInteger An integer containing only positive values (1, 2, ..)Short A signed 16-bit integerunsignedLong An unsigned 64-bit integerunsignedInt An unsigned 32-bit integerunsignedShort An unsigned 16-bit integerunsignedByte An unsigned 8-bit integer
Advantages of XML SchemaAdvantages of XML Schema
Consistency. It follows XML syntax.Extensibility. It includes data type and
namespaces.Exchangeability/manipulability.Rigid specification.Ease of use. Can use with XML API such as
DOM and SAX.
Thank You?
Any Question?