RE: [xsl] strange error in external dtd

Subject: RE: [xsl] strange error in external dtd
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 18 Dec 2008 08:28:29 -0000
This has nothing to do with Saxon, nothing to do with the operating system,
and for that matter nothing to do with XSLT. It's all about XML syntax and
the XML parser you are using. If you get different results in two
environments, it's because you are using different XML parsers (someone else
suggested a connectivity issue, which is an alternative explanation, but not
the right one in this case, I think.)

The DTD you are trying to read has:

<!-- Entity declaration for associated Architectural DTD
-->
<!ENTITY xhtml-arch.dtd
      PUBLIC "-//W3C//DTD XHTML Architecture 1.1//EN"
             "xhtml11-arch.dtd" >

<?IS10744:arch xhtml
    public-id       =  "-//W3C//NOTATION AFDR ARCBASE XHTML 1.1//EN"
...
?>

The term "architectural DTD" sounds like an SGMLism - I'm afraid I never
understood what SGML people mean when they talk about "architecture".
However, the essence of the problem is that there's a processing instruction
whose name has a colon in it, and that's illegal according to the XML
Namespaces recommendation, which means that it's not allowed when you are
parsing in namespace-aware mode, which will always be the case with XSLT.

As this DTD seems to have something to do with MathML, no doubt David
Carlisle will be able to shed more light. Indeed, he appears to be one of
the authors.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Ganesh Babu N [mailto:nbabuganesh@xxxxxxxxx] 
> Sent: 18 December 2008 04:13
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] strange error in external dtd
> 
> The XML parser will look for the DTD present in the internet. 
> So in both the systems you should have internet connection.
> 
> Regards,
> Ganesh
> 
> 
> On Thu, Dec 18, 2008 at 9:01 AM, Jeff Sese 
> <jeferson.sese@xxxxxxxxxxxx> wrote:
> > My guess is the two machines have different versions of parsers, if 
> > you are using the parser bundled with the Java then you are 
> probably 
> > using different versions of the Java.
> >
> > -- Jeff
> >
> > On 12 18, 08, at 9:16 AM, Fred Christian wrote:
> >
> >> I am using Saxon on 2 different Windows computers with different 
> >> results Both running Saxon 8.6.1 (I know, I should 
> upgrade, sorry :( 
> >> And I have actually worked around the problem already but I can't 
> >> help but be curious what might be going on.
> >>
> >> I am not sure what the important difference is On my XP 
> computer my 
> >> command line transform works fine.
> >> On my Win 2000 Server computer, it fails with...
> >>
> >> Error on line 239 column 15 of
> >> 
> http://www.w3.org/TR/2001/REC-MathML2-20010221/dtd/xhtml-math11-f.dtd:
> >> SXXP0003: Error reported by XML parser: A colon is not 
> allowed in the 
> >> name 'IS10744:arch'
> >> when namespaces are enabled.
> >>
> >> Recoverable error on line 2467 of file:/C:/xslfiles/work.xsl:
> >> FODC0005: org.xml.sax.SAXParseException: A colon is not allowed in 
> >> the name 'IS10744:arch'
> >> when namespaces are enabled.
> >>
> >> --
> >> Line 2467 of work.xsl is
> >> <xsl:for-each select="document(string($psetDoc))" > the doc being 
> >> opened is an xhtml file with this doctype <!DOCTYPE html PUBLIC 
> >> "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
> >> "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd";>
> >> <html xmlns="http://www.w3.org/1999/xhtml";>
> >>
> >> I solved/worked around the problem by removing the doctype 
> from my file.
> >> So far, I haven't found any side effects by doing so, but 
> I wouldn't 
> >> mind putting it back if I can.
> >>
> >> Any guesses on what might be causing the error on my Win 
> 2000 server 
> >> computer and not the other?
> >>
> >
> > Jeferson L. Sese
> > jeferson dot sese at asiatype dot com
> > Asiatype Inc.
> > Suite 114 Columbia Tower
> > Ortigas Ave., Greenhills
> > Mandaluyong City 1550 Philippines
> > Tel: +632-744-6262
> > Mobile: +63927-671-7901

Current Thread