DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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?
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Validate your XML documents I:
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Validate your XML documents II: Online Validate (This version is for schema documents with the namespace URI at Topologi at DTD to Schema Converter at: LuMriX dtd2xs Syntext Dtd2Xs GUI Oriented: XML Spy – Turbo XML–
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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 element to hold an integer with a range of 1 to 100“; DTD supports 10 datatypes; XML Schema supports 44+ datatypes.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Compare Schema with the Related XML <shiporder orderid="889923" xmlns:xsi=" xsi:noNamespaceSchemaLocation="example.xsd"> John Smith Ola Nordmann Langgt Stavanger Norway Empire Burlesque Special Edition
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Compare DTD with the Related Schema
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng DTD:
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Schema:
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Schema Tips: For Tag <xsd:schema xmlns:xsd=" targetNamespace=" xmlns=" elementFormDefault="qualified"> All Schema has “schema” as root element. And xmlns:xsd = " 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 namespace; The default namespace is 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 Boeing 747.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Referencing Schema in XML instance document I: <BookStore xmlns =" xmlns:xsi=" xsi:schemaLocation=" BookStore.xsd"> My Life and Times Paul McCartney July, McMillin Publishing... The line xmlns:xsi = " indicates that we want to use elements defined in the definition;
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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 namespace. Second, with schemaLocation tell the schema-validator that the 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.
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng 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. 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=" xsi:noNamespaceSchemaLocation="example.xsd">
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Assembling an Instance Document from More than one schema An instance document may be composed of elements from multiple schemas. <Library xmlns:xsi=" xsi:schemaLocation= " Book.xsd Employee.xsd"> My Life and Times Paul McCartney Macmillan Publishing John Doe
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Include method: <xsd:schema xmlns:xsd=" targetNamespace=" xmlns=" elementFormDefault="qualified">
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng Building a Schema from Multiple Schema Documents with Different Namespaces – use import method <xsd:schema xmlns:xsd=" targetNamespace=" xmlns:nikon=" xmlns:olympus=" xmlns:pentax=" elementFormDefault="qualified"> <xsd:import namespace=" schemaLocation="Nikon.xsd"/> <xsd:import namespace=" schemaLocation="Olympus.xsd"/> <xsd:import namespace=" schemaLocation="Pentax.xsd"/>
DECO 3002 Advanced Technology Integrated Design Computing Studio Tutorial 6 – XML Schema School of Architecture, Design Science and Planning Faculty of Architecture Wei Peng References: Roger L. Costello, XML Technologies Course at