Importing XML Schemas with <xsl:import-schema>
The <xsl:import-schema>
element allows you
to import an XML Schema. The schema is imported and processed before
any input documents are processed. This allows you to define datatypes
and validation rules before the XSLT processor begins to transform the
input document. This element is only supported by
schema-aware XSLT 2.0 processors.
The element has two optional parameters: namespace
, which defines the namespace URI
for the schema, and schema-location
, which contains the URI of
the schema file itself. <xsl:import-schema>
can use schema-location
to import a file, or it can
contain the actual XML Schema within the stylesheet. We’ll look at a
couple of examples here; for more complete examples, see the
discussion of the [2.0 – Schema]
<xsl:import-schema>
element.
The simplest way to import a schema into a stylesheet is to use the URI:
<?xml version="1.0"?> <!-- import-schema.xsl --> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:po="http://www.oreilly.com/xslt"> <xsl:import-schema namespace="http://www.oreilly.com/xslt" schema-location="po.xsd" /> <xsl:output method="text"/> <xsl:template match="schema-element(po:purchase-order)"> <xsl:text>
This is a test of the <xsl:import-</xsl:text> <xsl:text>schema> element.

</xsl:text> <xsl:text>Here are all the items in this purchase </xsl:text> <xsl:text>order:
</xsl:text> <xsl:for-each select="po:items/po:item"> <xsl:text> * </xsl:text> ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.