Changes

Jump to navigation Jump to search
84 bytes removed ,  18:38, 1 December 2023
m
Text replacement - "syntaxhighlight" to "pre"
XHTML, for example, defines its doctype via the following line:
<syntaxhighlight pre lang="xml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
</pre>
A simple working example for XHTML might look like this:
<syntaxhighlight pre lang="xml">
<catalog prefer="system" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD/" rewritePrefix="file:///path/to/dtds/" />
This rewrites all systemIds starting with: <code><nowiki>http://www.w3.org/TR/xhtml1/DTD/</nowiki></code> to <code>file:///path/to/dtds/</code>. For example, if the following XML file is parsed:
<syntaxhighlight pre lang="xml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Consider a library of reusable XSLT stylesheets. For performance reasons, this library will be cached locally. However, the import URI for a given stylesheet should always be the same, independent of the accidental relative or absolute path that it is stored at locally. Example:
<syntaxhighlight pre lang="xml">
<xsl:import href="http://acme.com/xsltlib/acme2html/1.0/acme2html.xsl"/>
</pre>
The XSLT stylesheet might not even be available from this location. The URI serves as a canonical location identifier for this XSLT stylesheet. A local copy of the <code>acme2html/1.0/</code> directory is expected to reside somewhere, and the location of this directory relative to the local XML catalog file is specified in an entry in this catalog, like this:
<syntaxhighlight pre lang="xml">
<rewriteURI uriStartString="http://acme.com/xsltlib/acme2html/1.0/" rewritePrefix="../acmehtml10/"/>
</pre>
By default, an error is raised if the catalog resolution fails. The runtime properties of the catalog resolver can be changed by setting system properties, either on startup…
<syntaxhighlight pre lang="perl">
java -Djavax.xml.catalog.resolve=continue ... org.basex.BaseX
</pre>
As mentioned above, the Java resolver doesn’t work for XSLT include or import URIs when executing XSLT with Saxon. You can use Norman Walsh’s xmlresolver.org instead. The catalog location may be given as a path relative to the current working directory, as described above. When you want to specify it as an absolute path, this resolver expects a file URI, not a file system path. Example for setting it on Windows before executing one of the .bat scripts, such as bin\basexgui.bat:
<syntaxhighlight pre lang="bat">
set BASEX_JVM="-Dorg.basex.catalog=file:///c:/Users/Jane/path/to/catalog.xml"
</pre>
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu