xsl-list
[Top] [All Lists]

Re: [xsl] Could not read secondary source document in XSLT stylesheet

2010-07-19 02:15:11
Hi David,
 
Thanks for your advice and the issue with missing </xsl:template> has been 
resolved. However, a different error even though Apache catalog resolver has 
been setup and is working in the same application yet Saxon 9.1 XSLT 2.0 
processor seems to indicate that it is not picking up the 
e:/xhtml1-transitional.dtd file supplied:
Parse catalog: ///e:/catalog.xml
Loading catalog: ///e:/catalog.xml
Default BASE: file:/e:/catalog.xml
xml:base: file:///E:/
BASE STR: file:///E:/
override: no
OVERRIDE: no
public: -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
PUBLIC: -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
system: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
xhtml1-transitional.dtd
SYSTEM: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
file:/E:/xhtml1-transitional.dtd
system: xhtml1-transitional.dtd
xhtml1-transitional.dtd
SYSTEM: xhtml1-transitional.dtd
file:/E:/xhtml1-transitional.dtd
uri: corporationStyleSheet.xsl
corporationStyleSheet.xsl
URI: corporationStyleSheet.xsl
file:/E:/corporationStyleSheet.xsl
(reset) xml:base: file:/e:/catalog.xml
BASE STR: file:/e:/catalog.xml
resolveSystem(http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)
Resolved system: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
file:/E:/xhtml1-transitional.dtd
resolveSystem(file:/E:/xhtml-lat1.ent)
resolvePublic(-//W3C//ENTITIES Latin 1 for XHTML//EN,file:/E:/xhtml-lat1.ent)
resolveSystem(file:/E:/tmp/xhtml-symbol.ent)
resolvePublic(-//W3C//ENTITIES Symbols for XHTML//EN,file:/E:/xhtml-symbol.ent)
resolveSystem(file:/E:/tmp/xhtml-special.ent)
resolvePublic(-//W3C//ENTITIES Special for XHTML//EN,file:/E:/xhtml-special.ent)
Recoverable error on line 10 
FODC0002: java.io.IOException: Server returned HTTP response code: 503 for URL:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
Exception in thread "main" java.lang.IllegalStateException: Root element not set
at org.jdom.Document.getContent(Document.java:408)
at org.jdom.output.XMLOutputter.output(XMLOutputter.java:369)
at org.jdom.output.XMLOutputter.output(XMLOutputter.java:203)
at CorporationBean.java:275)
 
C:/CorporationBean.java is made up of the following code snippets:
.......
271 TransformerFactory transformerFactory = new 
net.sf.saxon.TransformerFactoryImpl();
272 Transformer transformer = transformerFactory.newTransformer(new 
StreamSource(new File(e:/corporationStyleSheet.xsl)));
273 JDOMSource mainSource = new JDOMSource(primaryjdomDocument);
274 JDOMResult mainResult = new JDOMResult();
275 transformer.transform(mainSource, mainResult);
.....
 
The following e:/corporationStyleSheet.xsl has been simplified: 
E:/corporationStyleSheet.xsl
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
4 xmlns:ns="http://www.w3.org/1999/xhtml";
5 exclude-result-prefixes="ns">
6
7 <xsl:output method="xml" omit-xml-declaration="yes"/>
8 <xsl:strip-space elements="*"/>
9 <xsl:template match="/">
10 <xsl:apply-templates select="document('///C:/STAFF.xml')/ns:employee"/>
11 </xsl:template>
12
13 <xsl:template match="ns:employee">
14 <firstname><xsl:value-of select="ns:firstname"/></firstname>
15 <surname><xsl:value-of select="ns:surname"/></surname>
16 <age><xsl:value-of select="ns:age"/></age>
17 </xsl:template>
18 </xsl:stylesheet>
 
C:/STAFF.xml is made up of the following data snippet:<?xml 
version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";><
<firstname>John</firstname>
<surname>Smith</surname>
<age>25</age>
......employee xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:html="http://www.w3.org/1999/xhtml";></employee>
 
E:/Catalog.xml<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
<group prefer="system" xml:base="file:///E:/" > 
  <public 
      publicId="-//W3C//DTD XHTML 1.0 Transitional//EN" 
      uri="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
  <system
      systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"; 
      uri="xhtml1-transitional.dtd"/>
  <system
      systemId="xhtml1-transitional.dtd" 
      uri="xhtml1-transitional.dtd"/>
  <uri
      name="
      uri="
</group>
</catalog>corporationStyleSheet.xsl"corporationStyleSheet.xsl"/> 
This issue still persists even while running it online having Internet 
connection to www.3g.org. Is it necessary to setup catalog lookup within 
e:/corporationStyleSheet.xsl? If so, how to?
 
Thanks a lot again,
Jack


----- Original Message ----
From: David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Sent: Thu, 15 July, 2010 12:40:07 AM
Subject: Re: [xsl] Could not read secondary source document in XSLT stylesheet

On 14/07/2010 15:32, Jack Bush wrote:
10<xsl:template match="employee">
11<xsl:apply-templates select="document('C:\\STAFF.xml')"/>
12<xsl:template match="/ns:employee">


as it said in teh error message you quoted, you can not nest templates. You have

10 <xsl:template match="employee">
11 <xsl:apply-templates select="document('C:\\STAFF.xml')"/>
12 <xsl:template match="/ns:employee">


you need and </xsl:template> on line 12

also saxon may be forgivinbg these days but C:\\STAFF.xml should be a URI so 
file:///STAFF.xml

David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


      


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>