Node:Using the document's URI to locate a schema, Next:Using the document element to locate a schema, Previous:Schema locating file syntax basics, Up:Schema locating files
A uri
rule locates a schema based on the URI
of the document. The resource
attribute specifies
the URI of the document. The uri
attribute
specifies the URI of the schema. For example,
<uri resource="spec.xml" uri="docbook.rnc"/>
specifies that that the schema for spec.xml
is
docbook.rnc
.
A uri
rule may use a pathSuffix
attribute instead of a resource
attribute to locate a
schema based on the suffix of the URI. It considers only the path
component of the URI. In terms of files, it is equivalent to matching
on the file extension. For example,
<uri pathSuffix=".xsl" uri="xslt.rnc"/>
specifies that the schema for documents whose URI ends with
.xsl
is xslt.rnc
.
A transformURI
rule locates a schema by
transforming the URI of the document. The rule matches only if the
transformed URI exists. If there is a pathSuffix
attribute, then the path component of the document's URI must end with
the specified suffix. If there is a pathAppend
attribute,
then the URI is transformed by appending the specified string to the
URI's path component. For example,
<transformURI pathAppend=".rnc"/>
specifies that to locate a schema for a document
foo
, Emacs should test whether a file
foo.rnc
exists in the same directory as
foo
, and, if so, should use it as the
schema. If there is a replacePathSuffix
attribute, then
the URI is transformed by replacing the suffix matched by the
pathSuffix
attribute by the value of the
replacePathSuffix
attribute. A transformURI
rule matches only if the transformed URI is a valid URI that
identifies an existing resource. For example,
<transformURI pathSuffix=".xml" replacePathSuffix=".rnc"/>
specifies that to locate a schema for a document
foo.xml
, Emacs should test whether a file
foo.rnc
exists in the same directory as
foo.xml
, and, if so, should use it as the
schema.