XSD Tutorials - Herong's Tutorial Examples - Version 5.10, by Dr. Herong Yang

Importing Declarations Across Namespaces - Examples

This section describes a tutorial example on how to import external namespaces and refer to element declarations from imported namespaces.

A good example of using "import" components is to design a new schema that reuses (or refers to) elements declarations described in the "http://www.w3.org/1999/xhtml" name space.

In the following example, xhtml_import.xsd, declarations of "p", "pre", and "ul" are reused from the imported namespace:

<?xml version="1.0"?>
<xsd:schema
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xhtml="http://www.w3.org/1999/xhtml">

 <xsd:annotation>
  <xsd:documentation>xhtml_import.xsd
 - Copyright (c) 2013, HerongYang.com, All Rights Reserved.
  </xsd:documentation>
 </xsd:annotation>
 
 <xsd:import namespace="http://www.w3.org/1999/xhtml"
    schemaLocation="xhtml.xsd"/>

 <xsd:element name="book" type="bookType"/>
  
 <xsd:complexType name="bookType">
  <xsd:all>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="xsd:string"/>
   <xsd:element ref="xhtml:p"/>
   <xsd:element ref="xhtml:pre"/>
   <xsd:element ref="xhtml:ul"/>
  </xsd:all>
 </xsd:complexType>

</xsd:schema>

Notice that:

  • The "import" component specifies which namespace to import: namespace="http://www.w3.org/1999/xhtml".
  • The "import" component also specifies where to fetch the schema definitions for this namespace: schemaLocation="xhtml.xsd".
  • A prefix is declared for this namespace: xmlns:xhtml="http://www.w3.org/1999/xhtml".
  • The "ref="xhtml:p"" attribute is used to refer to the "p" element declaration from the imported name space.
  • There is no namespace assigned to the new schema.

In the next section, we will learn how to write an XML document that conforms to a schema that imports declarations from a different namespace.

Last update: 2013.

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 API

 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

 References

 PDF Printing Version

Importing Declarations Across Namespaces - Examples - Updated in 2014, by Dr. Herong Yang