Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Cannot find the declaration...

Cannot find the declaration...

2007-05-10       - By gilesP
Reply:     1     2     3     4     5     6     7     8     9  


Hi Brian

I have created a little class as attached below and run it.  

At first run it produces the below output. 3 things:
1) It uses com.sun.org.apache.xalan*
2) It keeps the xmlns declaration!
3) It doesn't indent.

OUTPUT:
trans class: com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
docuemnt class: com.sun.org.apache.xerces.internal.dom.DocumentImpl

<?xml version="1.0" encoding="UTF-8"?>
<checkout-shopping-cart xmlns="{http://checkout.google.com/schema/2}">
<shopping-cart>
<items>
<item>
<name>MyProduct</name>
</item>
</items>
</shopping-cart>
<checkout-flow-support/>
</checkout-shopping-cart>


However if I add in a WebObjects framework that our application makes use of
things change.  We get the below.  3 things:
1) It now uses org.apache.xalan.*
2) It removes the xmlns declaration!
3) It does indent.

OUTPUT:
trans class: org.apache.xalan.transformer.TransformerIdentityImpl
docuemnt class: org.apache.xerces.dom.DocumentImpl

<?xml version="1.0" encoding="UTF-8"?>
<checkout-shopping-cart>
 <shopping-cart>
   <items>
     <item>
       <name>MyProduct</name>
     </item>
   </items>
 </shopping-cart>
 <checkout-flow-support/>
</checkout-shopping-cart>

My questions now...

Is my code wrong for org.apache.xalan.*, hence it wont keep the xmlns
declaration?
Is my WebObjects framework version of org.apache.xalan. outdated?
Should I infact be using com.sun.org.apache.xalan.*?
If so how do I force its use rather than org.apache.xalan* without affecting
otyher parts of the app?

Many thanks for your help, much appreciated.

Giles

Test app............................

import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Main {

  public static void main(String[] args) {
 
    DocumentBuilderFactory factory = null;
    DocumentBuilder builder = null;  
    Document document;
    Element root;
    Element shoppingCart;
    Element checkoutFlowSupport;
    Element items;
    Element item;
    Element name;
    try {
      factory = DocumentBuilderFactory.newInstance();
      factory.setNamespaceAware(true);        
      builder = factory.newDocumentBuilder();
    } catch (ParserConfigurationException e) {
      e.printStackTrace();
    }
    document=builder.newDocument();
   
    root = (Element)
document.createElementNS("{http://checkout.google.com/schema/2}","checkout
-shopping-cart");  
   
    document.appendChild(root);
    shoppingCart = (Element) document.createElement("shopping-cart");
    checkoutFlowSupport = (Element)
document.createElement("checkout-flow-support");
    root.appendChild(shoppingCart);
    root.appendChild(checkoutFlowSupport);
   
    shoppingCart.appendChild(items=document.createElement("items"));
   
    item = (Element) document.createElement("item");
    items.appendChild(item);
   
    name =(Element) document.createElement("name");
    name.setNodeValue("MyProduct");
    name.appendChild(document.createTextNode("MyProduct"));
    item.appendChild(name);

    try {
      TransformerFactory tf = TransformerFactory.newInstance();
      Transformer trans = tf.newTransformer();
      trans.setOutputProperty(OutputKeys.INDENT, "yes");
      trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",
"2");

      System.out.println("trans class: " + trans.getClass().getName());
      System.out.println("docuemnt class: " +
document.getClass().getName()+"\n");
     
      StringWriter sw = new StringWriter();
      trans.transform(new DOMSource(document), new StreamResult(sw));
      System.out.print(sw.toString());
     
    } catch (TransformerException tEx) {
      tEx.printStackTrace();
    }
  }
}




--
View this message in context: http://www.nabble.com/Cannot-find-the-declaration
...-tf3716003.html#a10408335
Sent from the Xalan - J - Users mailing list archive at Nabble.com.