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> ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access