XSD Tutorials - Herong's Tutorial Examples - v5.23, by Herong Yang
Datatypes, Values and Representations
This section describes how built-in datatypes can be used to add type declarations to XML elements and attributes to help XML receiver to parse out desired values from XML documents.
There are 2 main purposes for providing XSD built-in datatypes:
In this section, we will concentrate on declare an XML element or an XML attribute with a built-in datatype. Building new custom datatypes based on built-in datatypes will be discussed in details in later tutorials.
First let's see an XML example without any datatype declaration:
<data>7065616365</data>
When the receiver process this XML element, he/she will face a problem, because the content could be evaluated in multiple ways: as an integer value of 7,065,616,365; as a phone number of (706) 561-6365; and as an ASCII string of "peace".
The above problem can be resolved, if the "data" element were declared a built-in datatype, because each built-in datatype provided precise rules on:
To understand how built-in datatypes and their associated rules work, we need to introduce some terminologies:
With these terminologies, we can describe how XSD datatype can be used in processes of generating and processing XML documents as:
1. A user, the XML generator, has a value V he wants to communicate in an XML element E.
2. The XML generator finds that value V is in the value space of built-in datatype T.
3. The XML generator declares element E to be datatype T in the XSD document:
<xs:element name="E" type="xs:T"/>
4. The XML generator represents value V with a lexical representation R base on lexical space rules associated with datatype T and put it in element E in a XML document:
<A>E</A>
5. Another user, the XML receiver, receives the XSD document and the XML document.
6. The XML receiver parses the representation R based on lexical space rules associated with datatype T and retrieves the value V back.
The following diagram provides an illustration of how element E, datatype T, value V and representation R are related to each:
Table of Contents
XML Editor and Schema Processor - XMLPad
Java API for XML Processing - JAXP
JAXP - XML Schema (XSD) Validation
Xerces2 Java Parser - Java API of XML Parsers
►Introduction of XSD Built-in Datatypes
Overview of XSD 1.1 Built-in Datatypes
►Datatypes, Values and Representations
Datatypes, Values and Representations - Example
Built-in Datatypes Lexical Representation Examples
Declaring Elements and Attributes with Built-in Datatypes
Defining New Datatypes with Built-in Datatypes
"anyType" Built-in Datatype Values and Representations
"anySimpleType" Built-in Datatype Values and Representations
"anyAtomicType" Built-in Datatype Values and Representations
"string" and Its Derived Datatypes
"decimal" and Its Derived Datatypes
"dateTime" and Its Related Datatypes
Miscellaneous Built-in Datatypes
Facets, Constraining Facets and Restriction Datatypes
"simpleType" - Defining Your Own Simple Datatypes
Identity-Constraints: unique, key and keyref
Assertion as Custom Validation Rules
XML Schema Location and Namespace in XML Documents
Overriding Element Types in XML Documents