[xquery-talk] doc() function failing to load DTD

Michael Ludwig mlu at as-guides.com
Thu Apr 9 18:57:57 PDT 2009


The XQuery implementation of an XML database fails to resolve the URI
of the DTD specified in the SYSTEM identifier.

dbxml> query { doc('file:/home/milu/xpg/xml/Sender.xml') }
1 objects returned for eager expression
' doc('file:/home/milu/xpg/xml/Sender.xml') '

dbxml> print
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE Senderliste SYSTEM "Sender.dtd">
<Senderliste Name="KOMPLETT">
	&Sender;
	<SenderJeSeite> 3 </SenderJeSeite>
	&Gruppen;
</Senderliste>

DTD loading attempted, but failing:

dbxml> query { doc('file:/home/milu/xpg/xml/Sender.xml')/* }
stdin:55: query failed, Error:
XML Indexer: Fatal Parse error in document at line, 2, char 43.
Parser message: An exception occurred!
Type:RuntimeException, Message:Could not open DTD file 'Sender.dtd'

Changing the URI to file:///home/milu/xpg/xml/Sender.xml doesn't help.

The DTD is in the same directory as the document, and parsing the
document from other contexts works fine.

So I think the database engine should be able to retrieve it using the
base URI of the document. Is this assumption correct?

Michael Ludwig


More information about the talk mailing list