Difference between revisions of "Catalog Resolver"

From BaseX Documentation
Jump to navigation Jump to search
Line 9: Line 9:
  
 
Fetching the <code>xhtml1-strict.dtd</code> obviously involves some network traffic. When dealing with single files this may seem tolerable, but  
 
Fetching the <code>xhtml1-strict.dtd</code> obviously involves some network traffic. When dealing with single files this may seem tolerable, but  
importing large collections might benefit from caching these resources locally.
+
importing large collections might benefit from caching these resources locally. Users report
 +
 
 +
== XML Entity and URI Resolvers in BaseX ==
 +
BaseX is able to use available URI resolvers without any additional configuration.
 +
 
 +
To enable entity resolving you have to provide a valid XML Catalog file.
 +
A simple working example for  XHTML might look like this:
 +
<pre class="brush:xml" start="0">
 +
<?xml version="1.0"?>
 +
<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/" />
 +
</catalog>
 +
</pre>
 +
This rewrites all SystemId that start with: ''<nowiki>http://www.w3.org/TR/xhtml1/DTD/</nowiki>'' to ''file:///path/to/dtds/''.
 +
 
 +
The XHTML DTD <code>xhtml1-strict.dtd</code> and all its linked resources will now be loaded from the specified path.
 +
===GUI===
 +
When running BaseX in GUI mode

Revision as of 11:05, 24 January 2011

Overview

XML documents often rely on Document Type Definitions (DTD). While parsing a document with BaseX elements and entities can be checked for validity with respect to that particular DTD.

XHTML for example defines its doctype via the following line:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

Fetching the xhtml1-strict.dtd obviously involves some network traffic. When dealing with single files this may seem tolerable, but importing large collections might benefit from caching these resources locally. Users report

XML Entity and URI Resolvers in BaseX

BaseX is able to use available URI resolvers without any additional configuration.

To enable entity resolving you have to provide a valid XML Catalog file. A simple working example for XHTML might look like this:

<?xml version="1.0"?>
<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/" />
</catalog>

This rewrites all SystemId that start with: http://www.w3.org/TR/xhtml1/DTD/ to file:///path/to/dtds/.

The XHTML DTD xhtml1-strict.dtd and all its linked resources will now be loaded from the specified path.

GUI

When running BaseX in GUI mode