Redefining Old Datatypes - XML Examples

This section describes a tutorial example on how to use elements declared with datatypes redefined with 'redefine' components.

In the previous section, we wrote a new version of "address_us.xsd" called "address_us_redefine.xsd", which inherited the "addressUs" element declaration, but redefined its datatype "addressUsType". Now let's try to write a sample XML document, address_us_redefine.xml, that conforms to this new definition.

<?xml version="1.0"?>
<addressUs>
<!-- address_us_redefine.xml
 - Copyright (c) 2002-2013 HerongYang.com. All Rights Reserved.
-->

 <street>1 Main Street</street>
 <city>New York</city>
 <state>NY</state>
 <zip>12345</zip>
 <country>USA</country>

</addressUs>

If you try to validate this new XML document, address_us_redefine.xml, with the new schema, address_us_redefine.xsd, it will pass:

herong> java XsdSchemaValidator address_us_redefine.xsd
   address_us_redefine.xml

Passed.

But if you try to validate this new XML document, address_us_redefine.xml, with the old schema, address_us.xsd, it will fail:

herong> java XsdSchemaValidator address_us.xsd address_us_redefine.xml

Error:
   Line number: 11
   Column number: 11
   Message: cvc-complex-type.2.4.d: Invalid content was found
   starting with element 'country'. No child element is expected at
   this point.

Failed with errors: 1

Table of Contents

 About This Book

 Introduction to XML Schema

 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

 Using Xerces2 Java APIs

 XML Schema Language - Basics

 Introduction of XSD Built-in Datatypes

 "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

 Complex Element Declaration

 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

Linking Multiple Schema Documents Together

 Schema Component Reuse - "include", "redefine" or "import"

 Including Old Schema Documents - "include" Component

 Including Old Schema Documents - Examples

 Including Old Schema Documents - Errors

 Redefining Old Datatypes - "redefine" Component

Redefining Old Datatypes - XML Examples

 Redefining Old Datatypes - Errors

 Importing Declarations Across Namespaces - "import" Component

 Importing Declarations Across Namespaces - Examples

 Using Elements Declared in Different Namespaces

 Using Elements Declared in Different Namespaces - Errors

 Glossary

 Archived Tutorials

 References

 Full Version in PDF/EPUB