The report schema, report.xsd
,
makes use of the simple type xipo:SKU
that is defined in another
schema, and in another target namespace. Recall that we used include
so
that the schema in ipo.xsd
could make
use of definitions and declarations from address.xsd
.
We cannot use include
here because it can only pull in definitions and declarations from a schema
whose target namespace is the same as the including schema's target namespace.
Hence, the include
element does not identify a namespace (although it does require a schemaLocation
).
The import mechanism that we describe in this section is an important
mechanism that enables schema components from different target namespaces to
be used together, and hence enables the schema validation of instance content
defined across multiple namespaces.
To import the type SKU
and use it in the report schema, we identify the namespace in which
SKU
is defined, and associate that namespace with a prefix for
use in the report schema. Concretely, we use the import
element to identify SKU
's target namespace,
http://www.example.com/IPO
, and we associate the namespace with
the prefix xipo
using a standard namespace declaration. The
simple type SKU
, defined in the namespace
http://www.example.com/IPO
, may then be referenced as
xipo:SKU
in any of the report schema's definitions and
declarations.
Currently, the default namespace is
xmlns="http://www.w3.org/2001/XMLSchema". If we make soap the default
namespace, then we will have to start qualifying types from the above
namespace explicitly, e.g., xsd:nonNegativeInteger, instead of
nonNegativeInteger. I don't see why we should make such change now.
I agree that we should keep our version of envelope.xsd on our web site to
allow existing implementations to continue to refer to it.
Regards,
-Arvola