xs:import — Import of a W3C XML Schema for another namespace.
<xs:import id = xs:ID namespace = xs:anyURI schemaLocation = xs:anyURI {any attributes with non-schema namespace} > Content: (xs:annotation?) </xs:import>
May be included in: xs:schema
xs:import
identifies the location at which a W3C
XML Schema validator may find the definition corresponding to
namespaces other than the target namespace of the current schema.
All the global definitions (elements, attributes, element and attribute groups, simple and complex types) and unique and key constraints of the imported schemas can be referenced using a namespace prefix defined for the corresponding namespace URI.
The schema locations indicated in xs:import
elements are only hints provided to the schema validators and may be
omitted. In this case, the Recommendation states that
“the schema author is leaving the identification of
that schema to the instance, application or user, via the mechanisms
described in Layer 3: Schema Document Access and
Web-interoperability.”
xs:import
may also be used to import components
with no target namespaces into schemas with target namespaces.
xs:import
must not be used to import component
definitions from the target namespace since two other elements are
available for this purpose (see
xs:include
and
xs:redefine
).
Only global component definitions of the imported schemas can be referenced (local definitions can never be referenced).
The rules of scoping described for the xs:keyref
element also apply to references between constraints for elements
that belong to different namespaces (the root element of the
keyref
constraint must be an ancestor or self
element of the root element for the unique or key constraint).
<xs:schema targetNamespace="http://dyomedea.com/ns/library" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ppl="http://dyomedea.com/ns/people" xmlns:lib="http://dyomedea.com/ns/library"> <xs:import namespace="http://dyomedea.com/ns/people" schemaLocation="simple-2-ns-ppl.xsd"/> <xs:element name="library"> <xs:complexType> <xs:sequence> <xs:element name="book" type="lib:bookType"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="bookType"> <xs:sequence> <xs:element name="isbn" type="xs:NMTOKEN"/> <xs:element name="title" type="xs:string"/> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element ref="ppl:person"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="characters"> <xs:complexType> <xs:sequence> <xs:element ref="ppl:person" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:attribute name="available" type="xs:string" use="required"/> </xs:complexType> </xs:schema>
id
W3C XML Schema’s element ID.
namespace
Namespace URI of the components to import. If this attribute is missing, the imported components are expected to have no namespace. When present, its value must be different than the target namespace of the importing schema.
schemaLocation
Location of the schema to import. If this attribute is missing, the validator might expect to get the information from the application, or try to find it on the Internet.