What is xml schema l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

What is XML Schema ? PowerPoint PPT Presentation

What is XML Schema ? XML Schema is an XML based description of your data’s business rules – alternative to DTD; An XML schema expresses the structure of an XML document as DTD does; The XML Schema language is also referred to as XML Schema Definition (XSD);

Download Presentation

What is XML Schema ?

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


What is xml schema l.jpg

What is XML Schema ?

  • XML Schema is an XML based description of your data’s business rules – alternative to DTD;

  • An XML schema expresses the structure of an XML document as DTD does;

  • The XML Schema language is also referred to as XML Schema Definition (XSD);

  • What XML Schema can while DTD can’t – complex datatype of elements or attributes – think about how to describe an attribute which is an integer ranges from 1 to 100?

School of Architecture, Design Science and Planning

Faculty of Architecture


Validate your xml documents i l.jpg

Validate your XML documents I:

School of Architecture, Design Science and Planning

Faculty of Architecture


Validate your xml documents ii l.jpg

Validate your XML documents II:

  • Online Validate (This version is for schema documents with the namespace URI http://www.w3.org/2001/XMLSchema) at http://www.w3.org/2001/03/webdata/xsv

  • Topologi at http://www.topologi.com/

  • DTD to Schema Converter at:

    • LuMriX dtd2xs http://lists.w3.org/Archives/Public/xmlschema-dev/2001Jun/0116.html

    • Syntext Dtd2Xs http://www.syntext.com/products/index.htm#Dtd2Xs

  • GUI Oriented:

    • XML Spy – http://www.xmlspy.com

    • Turbo XML– http://www.extensibility.com

School of Architecture, Design Science and Planning

Faculty of Architecture


Why dtd is out l.jpg

Why DTD is out?

  • You have to learn different syntax – a syntax different and inconsistent with XML files you are working on;

    • Limited datatype capability – DTDs support a very limited capability for specifying datatypes. For example, you can not express "I want the <age> element to hold an integer with a range of 1 to 100“;

      • DTD supports 10 datatypes;

      • XML Schema supports 44+ datatypes.

School of Architecture, Design Science and Planning

Faculty of Architecture


Why schema i l.jpg

Why Schema I?

  • XML Schema has Support for Data Types – it is easier to describe permissible document content and validate the correctness of data, etc.

  • XML Schemas use XML Syntax – You don't have to learn another language – you can use your XML editor and parser;

  • XML Schemas Secure Data Communication – with XML Schemas, the sender can describe the data in a way that the receiver will understand – a “Key”;

  • XML Schemas are Extensible – just like XML, because they are written in XML –reuse your Schema in other Schemas, create your own data types, etc.

School of Architecture, Design Science and Planning

Faculty of Architecture


Why schema ii l.jpg

Why Schema II?

  • Well-Formed is not Enough – a well-formed XML document is a document that conforms to the XML syntax rules;

  • Even if documents are Well-Formed can have serious consequences because the XML file may violate business rules;

  • Such as: you order 5 gross of laser printers, and you make a mistake in your XML file – 5 laser printers. With XML Schemas, most of these errors can be caught by your validating software.

School of Architecture, Design Science and Planning

Faculty of Architecture


Why schema iii namespace l.jpg

Why Schema III – Namespace:

  • The main reason for using a schema instead of a DTD is the ability to mix namespaces;

  • An XML namespace is a collection of names, identified by a URI reference [RFC2396], which are used in XML documents as element types and attribute names;

  • XML document may contain elements and attributes that are defined for and used by multiple software modules – However, such XML files contain multiple markup vocabularies which can pose problems of recognition and collision;

  • These require components have universal names – XML namespace is the mechanism to solve this problem.

School of Architecture, Design Science and Planning

Faculty of Architecture


Compare schema with the related xml l.jpg

Compare Schema with the Related XML

<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"

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

xsi:noNamespaceSchemaLocation="example.xsd">

<orderperson>John Smith</orderperson>

<shipto>

<name>Ola Nordmann</name>

<address>Langgt 23</address>

<city>4000 Stavanger</city>

<country>Norway</country>

</shipto>

<item>

<title>Empire Burlesque</title>

<note>Special Edition</note>

<quantity>1</quantity>

<price>10.90</price>

</item>

</shiporder>

School of Architecture, Design Science and Planning

Faculty of Architecture


Compare dtd with the related schema l.jpg

Compare DTD with the Related Schema

<!ELEMENT BookStore (Book+)>

<!ELEMENT Book (Title, Author, Date, ISBN, Publisher)>

<!ELEMENT Title (#PCDATA)>

<!ELEMENT Author (#PCDATA)>

<!ELEMENT Date (#PCDATA)>

<!ELEMENT ISBN (#PCDATA)>

<!ELEMENT Publisher (#PCDATA)>

School of Architecture, Design Science and Planning

Faculty of Architecture


Slide10 l.jpg

DTD:

School of Architecture, Design Science and Planning

Faculty of Architecture


Schema l.jpg

Schema:

School of Architecture, Design Science and Planning

Faculty of Architecture


Schema tips l.jpg

Schema Tips:

For Tag <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.books.org"

xmlns="http://www.books.org"

elementFormDefault="qualified">

  • All Schema has “schema” as root element. And xmlns:xsd =

    "http://www.w3.org/2001/XMLSchema" indicates that all XML-Schema elements are to be prefixed with an xsd: tag;

  • Target nameplace can act as an identification in the data streams when more than one schemas are involved in – it is optional;

  • The elements and datatypes that are used to construct schemas

    – schema, element, complexType, sequence, string, etc. are come from the http://www.w3.org/2001/XMLSchemanamespace;

  • The default namespace is http://www.books.org which is the targetNamespace;

  • elementFormDefault="qualified“ – This is a directive to any instance documents which conform to this schema: Any elements used by the instance document which were declared in this schema must be namespaced – for example <a:aircraft>Boeing 747</a:aircraft>.

School of Architecture, Design Science and Planning

Faculty of Architecture


Referencing schema in xml instance document i l.jpg

Referencing Schema in XML instance document I:

<?xml version="1.0"?>

<BookStore xmlns ="http://www.books.org"

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

xsi:schemaLocation="http://www.books.org

BookStore.xsd">

<Book>

<Title>My Life and Times</Title>

<Author>Paul McCartney</Author>

<Date>July, 1998</Date>

<ISBN>94303-12021-43892</ISBN>

<Publisher>McMillin Publishing</Publisher>

</Book>

...

</BookStore>

  • The line xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" indicates that we want to use elements defined in the http://www.w3.org/2001/XMLSchema-instance definition;

School of Architecture, Design Science and Planning

Faculty of Architecture


Referencing schema in xml instance document ii l.jpg

Referencing Schema in XML instance document II:

  • First, using a default namespace declaration, tell the schema-validator that all of the elements

    used in this instance document come from the http://www.books.org namespace.

  • Second, with schemaLocation tell the schema-validator that the http://www.books.org

    namespace is defined by BookStore.xsd,

    Note: The xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes can be used in

    a document to provide hints as to the physical location of schema documents which may be used for

    assessment.

  • Third, tell the schema-validator that the schemaLocation attribute we are using is the one in

    the XMLSchema-instance namespace.

School of Architecture, Design Science and Planning

Faculty of Architecture


No targetnamespace nonamespaceschemalocation l.jpg

No targetNamespace (noNamespaceSchemaLocation

  • Sometimes you may wish to create a schema but without associating the elements with a namespace;

  • The targetNamespace attribute is actually an optional attribute of <schema>. Thus, if you don’t want to specify a namespace for your schema then simply don’t use the targetNamespace attribute;

  • Note that there is no default namespace declaration. So, none of the elements are associated with a namespace;

  • Note that we do not use xsi:schemaLocation (since it requires a pair of values - a namespace and a URL to the schema for that namespace). Instead, use xsi:noNamespaceSchemaLocation

  • For Example, in XML instance file:

    <shiporder orderid="889923"

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

    xsi:noNamespaceSchemaLocation="example.xsd">

School of Architecture, Design Science and Planning

Faculty of Architecture


Assembling an instance document from more than one schema l.jpg

Assembling an Instance Document from More than one schema

An instance document may be composed of

elements from multiple schemas.

<?xml version="1.0"?>

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

xsi:schemaLocation=

"http://www.book.org

Book.xsd

http://www.employee.org

Employee.xsd">

<Books>

<Book xmlns="http://www.book.org">

<Title>My Life and Times</Title>

<Author>Paul McCartney</Author>

<Date>1998</Date>

<ISBN>1-56592-235-2</ISBN>

<Publisher>Macmillan Publishing</Publisher>

</Book>

</Books>

<Employees>

<Employee xmlns="http://www.employee.org">

<Name>John Doe</Name>

<SSN>123-45-6789</SSN>

</Employee>

</Employees>

</Library>

School of Architecture, Design Science and Planning

Faculty of Architecture


Include method l.jpg

Include method:

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ targetNamespace="http://www.library.org"

xmlns="http://www.library.org“ elementFormDefault="qualified">

<xsd:include schemaLocation="LibraryBook.xsd"/>

<xsd:include schemaLocation="LibraryEmployee.xsd"/>

<xsd:element name="Library">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Books">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Book" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="Employees">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="Employee" maxOccurs="unbounded"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

School of Architecture, Design Science and Planning

Faculty of Architecture


Building a schema from multiple schema documents with different namespaces use import method l.jpg

Building a Schema from Multiple Schema Documents with Different Namespaces – use import method

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.camera.org"

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

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

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

elementFormDefault="qualified">

<xsd:import namespace="http://www.nikon.com"

schemaLocation="Nikon.xsd"/>

<xsd:import namespace="http://www.olympus.com"

schemaLocation="Olympus.xsd"/>

<xsd:import namespace="http://www.pentax.com"

schemaLocation="Pentax.xsd"/>

<xsd:element name="camera">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="body" type="nikon:body_type"/>

<xsd:element name="lens" type="olympus:lens_type"/>

<xsd:element name="manual_adapter" type="pentax:manual_adapter_type"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:schema>

School of Architecture, Design Science and Planning

Faculty of Architecture


References l.jpg

References:

  • http://www.w3schools.com/default.asp

  • http://www.w3.org/XML/Schema

  • http://www.w3.org/TR/xmlschema-0/

  • http://www.w3.org/TR/xmlschema-1/

  • http://www.w3.org/TR/xmlschema-2/

  • Roger L. Costello, XML Technologies Course at http://www.xfront.com/

School of Architecture, Design Science and Planning

Faculty of Architecture


  • Login