Re: [xsl] Document function and DTD

Subject: Re: [xsl] Document function and DTD
From: jingjun long <longjingjun@xxxxxxxxx>
Date: Thu, 27 Dec 2007 17:09:57 +0800
Colin Paul Adams,

Thanks you.

I am using Saxon 8.9b.

The catalog files should be configed correctly since it can find the DTD using PUBLICID for the source XML file (not src_doc in XSLT).

It seems to me the catalog file is NOT searched using document function in XSLT. It try to find a DTD file in the same folder where src.xml is.

DocType definition in XML file:
<!DOCTYPE mybook PUBLIC "-//atom//DTD MYBOOK-REV2//EN" "mybook.dtd">

C:\data\src\mybook.dtd (System can not find the file.)

C:\data\src folder is the folder where src.xml is.



Colin Paul Adams ei:
"jingjun" == jingjun long <longjingjun@xxxxxxxxx> writes:

jingjun> hi there, I am using document function to read multiple jingjun> XML document as the source. I have a question and wonder jingjun> if you have experience this before.

jingjun> In the XSLT, I say:

    jingjun> <xsl:variable name="src_doc"
    jingjun> select="document('src.xml')"/>

jingjun> If there is no DocType definition in src.xml, it is ok.

    jingjun> In my case, there is a DocType definition in src.xml. The
    jingjun> DTD is not in the same folder where src.xml is. I use
    jingjun> catalog file to locate the DTD file. In this case, I get
    jingjun> "can not find DTD file" error when I run the xslt.

    jingjun> My question is, is there any way to set catalog resolver
    jingjun> for document function?

No. It ought to use the same catalogs as for the principal source

Which XSLT processor are you using? Have you tried turning on catalog
debugging (if it has such a  feature) to make sure that the catalog is
being searched properly?

Current Thread