XML: SAX vs. DOM vs. jDom etc.

Is there any reason to use SAX or DOM? I mean is jdom always the best choice? Some information?

http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXPDOM2.html#67733

Similar Messages

  • XML - SAX or DOM?

    Hi folks,
    I'm on the verge of emotional breakdown trying to get my head around working with XML in Java, and I would really appreciate a bit of help.
    What I would like to do is to store database metadata in an XML file.
    The steps I have taken so far are to read the metadata into a structure of objects (a metadata object that containts arraylists of tables objects that contain arraylists of columns object. Each of these object types holds information about the table or column concerned (table name, column type etc).
    I'm stuck when it comes to deciding whether to use SAX or DOM to write / read these files.
    Now, I understand that SAX is for sequential access, and DOM is for situations where you'd like to manipulate the XML tree. I guess that, given the nature of my data structure DOM would make more sense? Then I can define a node for each table, then off them, define a node for each column... Or am I missing the point here?
    Can anyone give me a nudge in the right direction?
    Thanks in advance
    s.

    Thanks for replying!
    Duffymo, I'd rather keep the xml content to the data
    to make the files easy to edit / write by hand.Not following you here.
    I understand that you want XML files, but XStream can take them and turn them into Java objects for you. Conversely, you can take a graph of Java objects and serialize them as XML.
    No worries about DOM or SAX that way.
    %

  • System property org.xml.sax.driver not specified

    I'm getting the error:
    System property org.xml.sax.driver not specified
    How do I set this property? Why doesn't it find the default?
    I'm using WL6.0
    Imports:
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.FactoryConfigurationError;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.transform.stream.StreamResult;
    import org.xml.sax.InputSource;
    import org.xml.sax.XMLReader;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.w3c.dom.Document;
    import org.w3c.dom.DOMException;
    Code Snippet:
    try
    File stylesheet = new File("LaborDistHours.xsl");
    LaborDistHours ldh = new LaborDistHours("1041410011",
    "01-feb-2000", "30-mar-2000");
    DocumentBuilderFactory factory =
    DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    StringReader reportXML = new StringReader( ldh.getReportXML() );
    document = builder.parse(new InputSource( reportXML ));
    TransformerFactory tFactory = TransformerFactory.newInstance();
    StreamSource stylesource = new StreamSource(stylesheet);
    Transformer transformer = tFactory.newTransformer(stylesource);
    //error occurs here
    DOMSource source = new DOMSource(document);
    StringWriter reportXLST = new StringWriter();
    StreamResult result = new StreamResult(reportXLST);
    transformer.transform(source, result);
    Steven Ford ([email protected])
    "...That we here highly resolve that these dead shall not have died in
    vain - that this nation, under God, shall have a new birth of Freedom - and
    that Government of the people, by the people and for the people shall not
    perish from the earth." Abraham Lincoln

    try to look on xml.apache.org for this error. There should be some pages describing how and why setup this property.
    Basically, these properties defines factories for javax extensions. javax defines interfaces and providers than supply implementations, so for example you can use different XML parsers implementations (we use Xalan for one OC4J container and original ORACLE parser for other). To bind this together they use some defined mechanism like setting system property of including special manifest file etc. (I don't know about details)
    Myrra

  • Org.xml.sax.SAXException: Error:General Schema Error

    I am getting the error below. Any clues/workarounds? I am
    using WL 6.1.
    Thanks in advance,
    Eva
    The following files are below:
    Validate.java
    BMDefaultHandler.java
    validate.xml
    validate.xsd
    org.xml.sax.SAXException: Error:General Schema Error: Grammar with uri:http://schemas.xmlsoap.org/soap/envelope/
    , can not be
    found; schema namespace maybe wrong:
    Xerces supports schemas from the "http://www.w3.org/2001/XMLSchema" namespace
    or
    the instance document's namespace may not match the targetNamespace of the schema.
    at
    com.bluemartini.xml.BMDefaultHandler.error(BMDefaultHandler.java:32)
    at
    org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1249)
    at
    org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLEr
    ror(XMLValidator.java:1821)
    at
    org.apache.xerces.validators.common.XMLValidator.validateElementAndAttr
    ibutes(XMLValidator.java:3232)
    at
    org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVa
    lidator.java:1229)
    at
    org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentS
    canner.java:1806)
    at
    org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispat
    ch(XMLDocumentScanner.java:949)
    at
    org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentSca
    nner.java:381)
    at
    org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at
    org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.ja
    va:195)
    at
    javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:191)
    at com.bluemartini.test.Validate.main(Validate.java:32)
    ===Validate.java
    package com.bluemartini.test;
    import java.io.*;
    import org.w3c.dom.*;
    import com.bluemartini.xml.*;
    // JAXP imports
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    * Sample test case.
    * Eva Flora
    public class Validate {
    public static void main(String[] argv) {
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    factory.setValidating(true);
    factory.setAttribute("http://xml.org/sax/features/validation", Boolean.TRUE);
    factory.setAttribute("http://apache.org/xml/features/validation/schema",
    Boolean.TRUE);
    DocumentBuilder builder = factory.newDocumentBuilder();
    BMDefaultHandler bmErrorHandler = new BMDefaultHandler();
    builder.setErrorHandler(bmErrorHandler);
    File temp = new File("validate.xml");
    Document doc = builder.parse(temp);
    } catch (Exception e) {
    e.printStackTrace();
    ===BMDefaultHandler.java
    package com.bluemartini.xml;
    import com.bluemartini.dna.*;
    import org.xml.sax.helpers.DefaultHandler;
    import org.xml.sax.*;
    public class BMDefaultHandler extends
    DefaultHandler
    public BMDefaultHandler()
    public void warning(SAXParseException spe)
    throws SAXException
    System.out.println("Warning: " + spe.getMessage());
    public void error(SAXParseException spe)
    throws SAXException
    throw new SAXException("Error:" + spe.getMessage());
    public void fatalError(SAXParseException spe)
    throws SAXException
    throw new SAXException("Fatal Error: " + spe.getMessage());
    ===validate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <soapns:Envelope xmlns:soapns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:test="http://www.test.com"
    xsi:noNamespaceSchemaLocation="validate.xsd">
         <soapns:Header/>
         <soapns:Body>
    <test:GWSMapRequestMessage>
              </test:GWSMapRequestMessage>
         </soapns:Body>
    </soapns:Envelope>
    ===validate.xsd
    <schema xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="GWSMapRequestMessage" type="TestType"/>
    <complexType name="TestType">
    </complexType>
    </schema>

    I am getting the error below. Any clues/workarounds? I am
    using WL 6.1.
    Thanks in advance,
    Eva
    The following files are below:
    Validate.java
    BMDefaultHandler.java
    validate.xml
    validate.xsd
    org.xml.sax.SAXException: Error:General Schema Error: Grammar with uri:http://schemas.xmlsoap.org/soap/envelope/
    , can not be
    found; schema namespace maybe wrong:
    Xerces supports schemas from the "http://www.w3.org/2001/XMLSchema" namespace
    or
    the instance document's namespace may not match the targetNamespace of the schema.
    at
    com.bluemartini.xml.BMDefaultHandler.error(BMDefaultHandler.java:32)
    at
    org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1249)
    at
    org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLEr
    ror(XMLValidator.java:1821)
    at
    org.apache.xerces.validators.common.XMLValidator.validateElementAndAttr
    ibutes(XMLValidator.java:3232)
    at
    org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVa
    lidator.java:1229)
    at
    org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentS
    canner.java:1806)
    at
    org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispat
    ch(XMLDocumentScanner.java:949)
    at
    org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentSca
    nner.java:381)
    at
    org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at
    org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.ja
    va:195)
    at
    javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:191)
    at com.bluemartini.test.Validate.main(Validate.java:32)
    ===Validate.java
    package com.bluemartini.test;
    import java.io.*;
    import org.w3c.dom.*;
    import com.bluemartini.xml.*;
    // JAXP imports
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    * Sample test case.
    * Eva Flora
    public class Validate {
    public static void main(String[] argv) {
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    factory.setValidating(true);
    factory.setAttribute("http://xml.org/sax/features/validation", Boolean.TRUE);
    factory.setAttribute("http://apache.org/xml/features/validation/schema",
    Boolean.TRUE);
    DocumentBuilder builder = factory.newDocumentBuilder();
    BMDefaultHandler bmErrorHandler = new BMDefaultHandler();
    builder.setErrorHandler(bmErrorHandler);
    File temp = new File("validate.xml");
    Document doc = builder.parse(temp);
    } catch (Exception e) {
    e.printStackTrace();
    ===BMDefaultHandler.java
    package com.bluemartini.xml;
    import com.bluemartini.dna.*;
    import org.xml.sax.helpers.DefaultHandler;
    import org.xml.sax.*;
    public class BMDefaultHandler extends
    DefaultHandler
    public BMDefaultHandler()
    public void warning(SAXParseException spe)
    throws SAXException
    System.out.println("Warning: " + spe.getMessage());
    public void error(SAXParseException spe)
    throws SAXException
    throw new SAXException("Error:" + spe.getMessage());
    public void fatalError(SAXParseException spe)
    throws SAXException
    throw new SAXException("Fatal Error: " + spe.getMessage());
    ===validate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <soapns:Envelope xmlns:soapns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:test="http://www.test.com"
    xsi:noNamespaceSchemaLocation="validate.xsd">
         <soapns:Header/>
         <soapns:Body>
    <test:GWSMapRequestMessage>
              </test:GWSMapRequestMessage>
         </soapns:Body>
    </soapns:Envelope>
    ===validate.xsd
    <schema xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="GWSMapRequestMessage" type="TestType"/>
    <complexType name="TestType">
    </complexType>
    </schema>

  • Org.xml.sax.SAXException: Error:General Schema Error: Grammar

    I am getting the error below. Any clues/workarounds? I am
    using WL 6.1.
    Thanks in advance,
    Eva
    The following files are below:
    Validate.java
    BMDefaultHandler.java
    validate.xml
    validate.xsd
    org.xml.sax.SAXException: Error:General Schema Error: Grammar with uri:http://schemas.xmlsoap.org/soap/envelope/
    , can not be
    found; schema namespace maybe wrong:
    Xerces supports schemas from the "http://www.w3.org/2001/XMLSchema" namespace
    or
    the instance document's namespace may not match the targetNamespace of the schema.
    at
    com.bluemartini.xml.BMDefaultHandler.error(BMDefaultHandler.java:32)
    at
    org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1249)
    at
    org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLEr
    ror(XMLValidator.java:1821)
    at
    org.apache.xerces.validators.common.XMLValidator.validateElementAndAttr
    ibutes(XMLValidator.java:3232)
    at
    org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVa
    lidator.java:1229)
    at
    org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentS
    canner.java:1806)
    at
    org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispat
    ch(XMLDocumentScanner.java:949)
    at
    org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentSca
    nner.java:381)
    at
    org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at
    org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.ja
    va:195)
    at
    javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:191)
    at com.bluemartini.test.Validate.main(Validate.java:32)
    ===Validate.java
    package com.bluemartini.test;
    import java.io.*;
    import org.w3c.dom.*;
    import com.bluemartini.xml.*;
    // JAXP imports
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    * Sample test case.
    * Eva Flora
    public class Validate {
    public static void main(String[] argv) {
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    factory.setValidating(true);
    factory.setAttribute("http://xml.org/sax/features/validation", Boolean.TRUE);
    factory.setAttribute("http://apache.org/xml/features/validation/schema",
    Boolean.TRUE);
    DocumentBuilder builder = factory.newDocumentBuilder();
    BMDefaultHandler bmErrorHandler = new BMDefaultHandler();
    builder.setErrorHandler(bmErrorHandler);
    File temp = new File("validate.xml");
    Document doc = builder.parse(temp);
    } catch (Exception e) {
    e.printStackTrace();
    ===BMDefaultHandler.java
    package com.bluemartini.xml;
    import com.bluemartini.dna.*;
    import org.xml.sax.helpers.DefaultHandler;
    import org.xml.sax.*;
    public class BMDefaultHandler extends
    DefaultHandler
    public BMDefaultHandler()
    public void warning(SAXParseException spe)
    throws SAXException
    System.out.println("Warning: " + spe.getMessage());
    public void error(SAXParseException spe)
    throws SAXException
    throw new SAXException("Error:" + spe.getMessage());
    public void fatalError(SAXParseException spe)
    throws SAXException
    throw new SAXException("Fatal Error: " + spe.getMessage());
    ===validate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <soapns:Envelope xmlns:soapns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:test="http://www.test.com"
    xsi:noNamespaceSchemaLocation="validate.xsd">
         <soapns:Header/>
         <soapns:Body>
    <test:GWSMapRequestMessage>
              </test:GWSMapRequestMessage>
         </soapns:Body>
    </soapns:Envelope>
    ===validate.xsd
    <schema xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="GWSMapRequestMessage" type="TestType"/>
    <complexType name="TestType">
    </complexType>
    </schema>

    I guess the problem is due to the schema namespace
    you are using.
    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
    pls try with :
    "http://www.w3.org/2001/XMLSchema"
    regards,
    -manoj
    "Eva Flora" <[email protected]> wrote in message
    news:[email protected]...
    I am getting the error below. Any clues/workarounds? I am
    using WL 6.1.
    Thanks in advance,
    Eva
    The following files are below:
    Validate.java
    BMDefaultHandler.java
    validate.xml
    validate.xsd
    org.xml.sax.SAXException: Error:General Schema Error: Grammar with
    uri:http://schemas.xmlsoap.org/soap/envelope/
    , can not be
    found; schema namespace maybe wrong:
    Xerces supports schemas from the "http://www.w3.org/2001/XMLSchema"
    namespace
    or
    the instance document's namespace may not match the targetNamespace of the
    schema.
    at
    com.bluemartini.xml.BMDefaultHandler.error(BMDefaultHandler.java:32)
    at
    org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1249)
    at
    org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLEr
    ror(XMLValidator.java:1821)
    at
    org.apache.xerces.validators.common.XMLValidator.validateElementAndAttr
    ibutes(XMLValidator.java:3232)
    at
    org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVa
    lidator.java:1229)
    at
    org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentS
    canner.java:1806)
    at
    org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispat
    ch(XMLDocumentScanner.java:949)
    at
    org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentSca
    nner.java:381)
    at
    org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
    at
    org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.ja
    va:195)
    at
    javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:191)
    at com.bluemartini.test.Validate.main(Validate.java:32)
    ===Validate.java
    package com.bluemartini.test;
    import java.io.*;
    import org.w3c.dom.*;
    import com.bluemartini.xml.*;
    // JAXP imports
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.ParserConfigurationException;
    * Sample test case.
    * Eva Flora
    public class Validate {
    public static void main(String[] argv) {
    try {
    DocumentBuilderFactory factory =
    DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    factory.setValidating(true);
    factory.setAttribute("http://xml.org/sax/features/validation",
    Boolean.TRUE);
    factory.setAttribute("http://apache.org/xml/features/validation/schema",
    Boolean.TRUE);
    DocumentBuilder builder = factory.newDocumentBuilder();
    BMDefaultHandler bmErrorHandler = new BMDefaultHandler();
    builder.setErrorHandler(bmErrorHandler);
    File temp = new File("validate.xml");
    Document doc = builder.parse(temp);
    } catch (Exception e) {
    e.printStackTrace();
    ===BMDefaultHandler.java
    package com.bluemartini.xml;
    import com.bluemartini.dna.*;
    import org.xml.sax.helpers.DefaultHandler;
    import org.xml.sax.*;
    public class BMDefaultHandler extends
    DefaultHandler
    public BMDefaultHandler()
    public void warning(SAXParseException spe)
    throws SAXException
    System.out.println("Warning: " + spe.getMessage());
    public void error(SAXParseException spe)
    throws SAXException
    throw new SAXException("Error:" + spe.getMessage());
    public void fatalError(SAXParseException spe)
    throws SAXException
    throw new SAXException("Fatal Error: " + spe.getMessage());
    ===validate.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <soapns:Envelope xmlns:soapns="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
    xmlns:test="http://www.test.com"
    xsi:noNamespaceSchemaLocation="validate.xsd">
    <soapns:Header/>
    <soapns:Body>
    <test:GWSMapRequestMessage>
    </test:GWSMapRequestMessage>
    </soapns:Body>
    </soapns:Envelope>
    ===validate.xsd
    <schema xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="GWSMapRequestMessage" type="TestType"/>
    <complexType name="TestType">
    </complexType>
    </schema>
    [att1.html]

  • Org.xml.sax.SAXException: System property org.xml.sax.driver not specified

    Hi,
    I am running Jdeveloper 9.0.3.1 and using embedded OC4J.
    Getting following error when trying to run the application. Please help me if you can.
    Thanks
    Tareq
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:90)
         at net.sundog.struts.ActionFinderPlugIn.parseHtmlFiles(ActionFinderPlugIn.java:76)
         at net.sundog.struts.ActionFinderPlugIn.searchDirectory(ActionFinderPlugIn.java:64)
         at net.sundog.struts.ActionFinderPlugIn.init(ActionFinderPlugIn.java:50)
         at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:1156)
         at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
         at javax.servlet.GenericServlet.init(GenericServlet.java:258)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpApplication.loadServlet(HttpApplication.java:1956)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpApplication.findServlet(HttpApplication.java:4355)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:2750)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:617)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)

    try to look on xml.apache.org for this error. There should be some pages describing how and why setup this property.
    Basically, these properties defines factories for javax extensions. javax defines interfaces and providers than supply implementations, so for example you can use different XML parsers implementations (we use Xalan for one OC4J container and original ORACLE parser for other). To bind this together they use some defined mechanism like setting system property of including special manifest file etc. (I don't know about details)
    Myrra

  • Org.xml.sax.SAXParseException: Document root element is missing.

    Hi,
    I am trying to get the portal login id from a weblogic server based application from iplaet portal server.
    I get this follwoing error
    org.xml.sax.SAXParseException: Document root element is missing.
    at com.sun.xml.parser.Parser.fatal(Parser.java:2817)
    at com.sun.xml.parser.Parser.fatal(Parser.java:2805)
    at com.sun.xml.parser.Parser.parseInternal(Parser.java:493)
    at com.sun.xml.parser.Parser.parse(Parser.java:284)
    at com.sun.xml.tree.XmlDocument.createXmlDocument(XmlDocument.java:226)
    at com.iplanet.portalserver.util.XMLParser.<init>(XMLParser.java:70)
    at com.iplanet.portalserver.naming.share.NamingResponseParser.<init>(NamingResponseParser.java:33)
    at com.iplanet.portalserver.naming.share.NamingResponse.parseXML(NamingResponse.java:74)
    at com.iplanet.portalserver.naming.WebtopNaming.updateNamingTable(WebtopNaming.java:174)
    at com.iplanet.portalserver.naming.WebtopNaming.getNamingProfile(WebtopNaming.java:155)
    at com.iplanet.portalserver.naming.WebtopNaming.getServiceURL(WebtopNaming.java:57)
    at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:534)
    at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:520)
    at com.iplanet.portalserver.session.Session.getSession(Session.java:414)
    at jsp_servlet.__eatonPortalLogin._jspService(__eatonPortalLogin.java:155)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1075)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:418)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:462)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5517)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:685)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3156)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2506)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
    <May 19, 2004 9:01:12 AM EDT> <Error> <HTTP> <101017> <[ServletContext(id=4873279,name=ematrix,context-path=/ematrix)] Root cause of ServletException
    com.iplanet.portalserver.session.SessionException
    at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:539)
    at com.iplanet.portalserver.session.Session.getSessionServiceURL(Session.java:520)
    at com.iplanet.portalserver.session.Session.getSession(Session.java:414)
    at jsp_servlet.__eatonPortalLogin._jspService(__eatonPortalLogin.java:155)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1075)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:418)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:462)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5517)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:685)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3156)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2506)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
    Any help/pointers will be appreciated.
    Ashish

    Just for anyone else who hits this problem: I encountered the same issue with an XML document that XMLSpy claims is quite well formed. I opened the document in a hex editor, and there at the from was a three-byte byte order marker - the marker that I believe the UTF-8 standard says is optional. I removed these three bytes, and the file was parsed correctly.
    In this case, the XML file was created using a Microsft DOM (save).
    My solution is to make the java parser - as I use it - a tad more robust: Open the file and create an input stream - a pushback input stream. Read the first three bytes; if they are NOT a BOM, then push those bytes back. Now - in any case - give the stream to the parser to read.
    try {
    // Open file for reading.
    f = new File(path);
    FileInputStream fis = new FileInputStream(f);
    PushbackInputStream pis = new PushbackInputStream(fis);
    byte[] buf = new byte[3];
    pis.read(buf, 0, 3);
    if (! (buf[0] == 0x00EF) && (buf[1] == 0x00BB) && (buf[2] == 0x00BF) ) {
         pis.unread(buf, 0, 3);
    builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    doc = builder.parse(pis);
    catch (Exception x) {
         x.printStackTrace();
    }

  • XML SAX parser that support  LexicalHandler

    Hello,
    I'm looking for an XML SAX parser that support a LexicalHandler.
    I have xml files that are not well formed, ie: (&, <, >, etc...) characters within tags and I need to ignore them.
    Anyone have a link to some opensource library ??
    Thanks,
    Samir

    Don't waste your time. Using a LexicalHandler isn't going to help with parsing malformed XML. You should get the person who produced those files to replace them with correct XML.
    PC&#178;

  • Reading from XML file using DOM parser.

    Hi,
    I have written the following java code to read the XML file and print the values. It reads the XML file. It gets the node NAME and prints it. But it returns null when trying to get the node VALUE. I am unable to figure out why.
    Can anyone please help me with this.
    Thanks and Regards,
    Shweta
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import oracle.xml.parser.v2.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXException;
    public class ReadNodes
    private static XMLDocument mDoc;
    public ReadNodes () {
         try {
    DOMParser lParser = new DOMParser();
    URL lUrl = createURL("mot.xml");
    System.out.println("after creating the URL object ");
    lParser.setErrorStream(System.out);
    lParser.showWarnings(true);
    lParser.parse(lUrl);
    mDoc = lParser.getDocument();
         System.out.println("after creating the URL object "+mDoc);
    lParser.reset();
    } catch (Exception e) {
    e.printStackTrace();
    } // end catch block
    } // End of constructor
    public void read() throws DOMException {
    try {
         NodeList lTrans = this.mDoc.getElementsByTagName("TRANSLATION");
         for(int i=0;i<lTrans.getLength();i++) {
              NodeList lTrans1 = lTrans.item(i).getChildNodes();
              System.out.println("lTrans1.item(0).getNodeName : " + lTrans1.item(0).getNodeName());
              System.out.println("lTrans1.item(0).getNodeValue : " + lTrans1.item(0).getNodeValue());
              System.out.println("lTrans1.item(1).getNodeName : " + lTrans1.item(1).getNodeName());
              System.out.println("lTrans1.item(1).getNodeValue : " + lTrans1.item(1).getNodeValue());
         } catch (Exception e) {
         System.out.println("Exception "+e);
         e.printStackTrace();
         } catch (Throwable t) {
              System.out.println("Exception "+t);
    public static URL createURL(String pFileName) throws MalformedURLException {
    URL url = null;
    try {
    url = new URL(pFileName);
    } catch (MalformedURLException ex) {
    File f = new File(pFileName);
    String path = f.getAbsolutePath();
    String fs = System.getProperty("file.separator");
    System.out.println(" path of file : "+path +"separator " +fs);
    if (fs.length() == 1) {
    char sep = fs.charAt(0);
    if (sep != '/')
    path = path.replace(sep, '/');
    if (path.charAt(0) != '/')
    path = '/' + path;
    path = "file://" + path;
    System.out.println("path is : "+path);
    // Try again, if this throws an exception we just raise it up
    url = new URL(path);
    } // End catch block
    return url;
    } // end method create URL
    public static void main (String args[]) {
         ReadNodes mXML = new ReadNodes();
         mXML.read();
    The XML file that I am using is
    <?xml version = "1.0"?>
    <DOCUMENT>
    <LANGUAGE_TRANS>
    <TRANSLATION>
    <CODE>3</CODE>
    <VALUE>Please select a number</VALUE>
    </TRANSLATION>
    <TRANSLATION>
    <CODE>5</CODE>
    <VALUE>Patni</VALUE>
    </TRANSLATION>
    <TRANSLATION>
    <CODE>6</CODE>
    <VALUE>Status Messages</VALUE>
    </TRANSLATION>
    <TRANSLATION>
    <CODE>7</CODE>
    <VALUE>Progress</VALUE>
    </TRANSLATION>
    <TRANSLATION>
    <CODE>8</CODE>
    <VALUE>Create Data Files...</VALUE>
    </TRANSLATION>
    <TRANSLATION>
    <CODE>9</CODE>
    <VALUE>OK</VALUE>
    </TRANSLATION>
    </LANGUAGE_TRANS>
    </DOCUMENT>

    because what you want is not the node value of CODE but the node value of the text nodes into it!
    assuming only one text node into it, try this:
    System.out.println("lTrans1.item(0).getNodeName : " + lTrans1.item(0).getFirstChild().getNodeValue());

  • How to get nodes and its attributes of an XML file usiong DOM parsing?

    how to get nodes and its attributes of an XML file usiong DOM parsing?
    i am new to XML parsing.......
    Thanking you........

    import org.w3c.dom.Document;
    import org.w3c.dom.*;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;      ...
    //Setup the document
    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
         Document doc = docBuilder.parse (new File("MY_XML_FILE.xml"));
    //get elemets by name
         String elementValue = doc.getElementsByTagName("MY_ELEMENT").item(0).getTextContent();
    //This method can return multiple nodes, in this instance I get item(0) , first nodeRead the api for other methods of getting data.

  • In Java Mapping Whether to SAX or DOM ?

    While implementing Java Mapping which of the following SAX , DOM parsers  is the most efficient way to implement it.
    I mean considering the voulume of data in the XML format is large which  usage will give me most  optimal performance .
    It would be nice if someone could give a sample most  optimal java code using JAXP where  input stream is read  and after  processing written to  output stream.
    regards
    Nilesh Taunk.

    Hi Nilesh,
    >>>While implementing Java Mapping which of the following SAX , DOM parsers is the most efficient way to implement it.
    there's no one good answer fot this question
    except: it depends:)
    SAX and DOM are a little different parsers
    so it depends what will your java mapping
    have to do: if it will change the
    structure or maybe it will only change a few tags,
    or maybe it will do something else
    have a look at the page below to read a simple
    comparision between SAX and DOM
    http://www.scit.wlv.ac.uk/~jphb/cp2101/week4/XML_Parsing.html
    or this thread:
    http://www.biglist.com/lists/xsl-list/archives/200301/msg01318.html
    they will give you some idea which one to choose
    depending on your requirements
    BTW
    remember use java mappings only
    if you cannot use graphical mapping (very easy debugging)
    and if your document cannot be parsed (maybe huge documents)
    with XSLT which is supported by many graphilal tools
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions">XI FAQ - Frequently Asked Questions</a>

  • Parsing XML using java DOM

    hi
    i am trying to parse a document and change a specific text value within an element althouh when i run the program it changes the nodes text however when i check the xml file it doesnt show the changes it remains the same the code that i am using is as follow iwould be greatful if any one culd help:
    //  ReplaceText.java
    // Reads intro.xml and replaces a text node.
    // Java core packages
    import java.io.*;
    // Java extension packages
    import javax.xml.parsers.*;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.dom.*;
    // third-party libraries
    import org.xml.sax.*;
    import org.w3c.dom.*;
    public class ReplaceText {
       private Document document;
       public ReplaceText()
          // parse document, find/replace element, output result
          try {
             // obtain default parser
             DocumentBuilderFactory factory =
                DocumentBuilderFactory.newInstance();
             // set parser as validating          
             factory.setValidating( true );
             // obtain object that builds Documents
             DocumentBuilder builder = factory.newDocumentBuilder();
             // set error handler for validation errors
             builder.setErrorHandler( new MyErrorHandler() );
      System.err.println( "reading" );
             // obtain document object from XML document
             File f = new File("D:/Documents and Settings/Administrator/Desktop/xml adv java bk/appC/intro.xml");
              System.err.println( "reading" );
             document = builder.parse(f);
    //document = builder.parse( new File( "intro.xml" ) );
    System.err.println( "reading document" );
             // retrieve the root node
             Node root = document.getDocumentElement();
             if ( root.getNodeType() == Node.ELEMENT_NODE ) {
                Element myMessageNode = ( Element ) root;
                NodeList messageNodes =
                   myMessageNode.getElementsByTagName( "message5" );
                if ( messageNodes.getLength() != 0 ) {
                   Node message = messageNodes.item( 0 );
                        System.out.println("iiiii");
                   // create text node
                   Text newText = document.createTextNode(
                      "New Changed Message!!" );
                   // get old text node
                   Text oldText =
                      ( Text ) message.getChildNodes().item( 0 ); 
                   // replace text
                   //message.removeChild(oldText);
                   message.replaceChild( newText, oldText );
             // output Document object
             // create DOMSource for source XML document
             Source xmlSource = new DOMSource( document );
             // create StreamResult for transformation result
             Result result = new StreamResult( System.out );
             // create TransformerFactory
             TransformerFactory transformerFactory =
                TransformerFactory.newInstance();
             // create Transformer for transformation
             Transformer transformer =
                transformerFactory.newTransformer();
             transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
               transformer.setOutputProperty( OutputKeys.STANDALONE, "yes" );
             // transform and deliver content to client
             transformer.transform( xmlSource, result );
          // handle exception creating DocumentBuilder
          catch ( ParserConfigurationException parserException ) {
             parserException.printStackTrace();
          // handle exception parsing Document
          catch ( SAXException saxException ) {
             saxException.printStackTrace();        
          // handle exception reading/writing data
          catch ( IOException ioException ) {
             ioException.printStackTrace();
             System.exit( 1 );
          // handle exception creating TransformerFactory
          catch (
             TransformerFactoryConfigurationError factoryError ) {
             System.err.println( "Error while creating " +
                "TransformerFactory" );
             factoryError.printStackTrace();
          // handle exception transforming document
          catch ( TransformerException transformerError ) {
             System.err.println( "Error transforming document" );
             transformerError.printStackTrace();
       public static void main( String args[] )
          ReplaceText replace = new ReplaceText();   
    }the xml file that i am using is as follows:
    <?xml version = "1.0"?>
    <!-- Fig. 28.10 : intro.xml             -->
    <!-- Simple introduction to XML markup   -->
    <!DOCTYPE myMessage [
         <!ELEMENT myMessage (message, message5)>
         <!ELEMENT message (#PCDATA)>
         <!ELEMENT message5 (#PCDATA)>
    ]>
    <myMessage>
         <message>welcome to the xml shhhhhushu</message>
         <message5>welcome to the xml shhhhhushu</message5>
    </myMessage>i would be greatful if some one could please help.....

    See if the Text 'oldText' actually has any text within it. Sometimes in DOM parsing, you will get something like:
    Element
       Text (blank)
       Text (actual)
       Text (blank)Whereas you would expect to receive:
    Element
       Text (actual)See if that is the case. If yes, modify your logic to iterate through the child text nodes until one with actual text inside of it (getNodeValue()) is found.
    - Saish

  • SAX and DOM - treating encoding differently ??

    Hello!
    I have run into a strange problem - I was parsing my xml document using
    WebLogic's DOM and SAX parsers to compare their performance, and I found
    that while using their DOM parser I was able to parse the document just
    fine, using the SAX parser gave me an error:
    org.xml.sax.SAXParseException: Declared encoding "UTF-8" does not match
    actual one "ISO8859_1"
    I don't use any extended characters in the xml document, and even if I
    did - I'm puzzled as to why DOM parser would process it without
    complaining but the SAX paser would not??
    Thanks,
    Marina

    Hello!
    I have run into a strange problem - I was parsing my xml document using
    WebLogic's DOM and SAX parsers to compare their performance, and I found
    that while using their DOM parser I was able to parse the document just
    fine, using the SAX parser gave me an error:
    org.xml.sax.SAXParseException: Declared encoding "UTF-8" does not match
    actual one "ISO8859_1"
    I don't use any extended characters in the xml document, and even if I
    did - I'm puzzled as to why DOM parser would process it without
    complaining but the SAX paser would not??
    Thanks,
    Marina

  • Why to use xml ,sax api ,?

    Dear friends
    1> Can u please tell me why to use xml instead of html. When the developement is
    easy & fast in html, then why peoples are going for xml.
    2> Please tell me role of SAX api in relevence to XML.
    3>What is difference between DOM & SAX.?
    If possible spare few seconds to write to me.
    regds
    shiv
    Email: [email protected]

    1> Can u please tell me why to use xml instead of
    html. When the developement is
    easy & fast in html, then why peoples are going for
    xml.
    HTML is only for presentations like web pages. XML, however, is use to define a new language like XHTML that is for presentations. But there are XML based language that is not for presentation, for example, XLink which allows elements to be inserted into XML documents in order to create and describe links between resources. All in all, XML is a much powerful language than HTML.
    2> Please tell me role of SAX api in relevence to
    XML.
    Simplely put, SAX is a XML parser like DOM that is used to process XML data.
    3>What is difference between DOM & SAX.?
    Take a look at this: http://java.sun.com/webservices/docs/ea2/tutorial/doc/JAXPIntro.html
    Hope this help.

  • Xerces with SAX or DOM

    I am using xerces (in jar form) to parse an XML file.
    I've now read, after getting this to work, that xerces can use SAX or DOM.
    How do I know which one I am using?

    Actually, I have never used SAX for modifying attributes, but there is a lot of documentation available.
    http://java.sun.com/webservices/docs/1.1/tutorial/doc/JAXPSAX.html#wp69937
    I think this is a good example:
    import java.io.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import org.apache.xerces.parsers.SAXParser;
    public class Trace extends DefaultHandler {
      int indent;
      void printIndent() {
        for (int i=0; i<indent; i++) System.out.print("-");
      public void startDocument() {
        System.out.println("start document");
      public void endDocument() {
        System.out.println("end document");
      public void startElement(String uri, String localName,
                               String qName, Attributes attributes) {
        printIndent();
        System.out.println("starting element: " + qName);
        indent++;
      public void endElement(String uri, String localName,
                             String qName) {
        indent--;
        printIndent();
        System.out.println("end element: " + qName);
      public void ignorableWhitespace(char[] ch, int start, int length) {
        printIndent();
        System.out.println("whitespace, length " + length);
      public void processingInstruction(String target, String data) {
        printIndent();
        System.out.println("processing instruction: " + target);
      public void characters(char[] ch, int start, int length){
        printIndent();
        System.out.println("character data, length " + length);
      public static void main(String[] args) {
        Trace t = new Trace();
        SAXParser p = new SAXParser();
        p.setContentHandler(t);
        try { p.parse(args[0]); }
        catch (Exception e) {e.printStackTrace();}
    }

Maybe you are looking for

  • How do i install a version of Java

    Hello, I have to make an exercise and they have told us to download the latest version of Java.Although, i have already some versions of Java in my PC. I have in my Program Files a folder named java which contains the following folders : jdk1.5.0_15,

  • Lost id3 tags moving files from mac to external drive

    No matter what audio file I move from my desktop to any of my 20 external hhds in finder not itunes the meta data gets lost in the transfer. My music hard drive died and I'm having to copy all my CDs to a new drive, I like to have all my tags set and

  • Error while importing on local files/queries from Sap Portal EP6

    Hi, When i try to import a file from sap portal to the local PC, I get a screen with the header "Enter Some File attributes". Text displayed in the screen is "Please wait. You will be forwarded automatically. This page had to be included for technica

  • Hi Experts, a question about Account statement(sapscript)?

    Hi Experts, I am working on Account statement, I want to know what is the field for opening balance on the first date of the month, I have a structure(RF140) to use and I found there is final balance(rf140-datu2, rf140-saldo) used in the form, can an

  • I need help!...creating Javadocs

    Hi, I am developing an application and wish to create Javadocs from the classes but don't know anything about them. Is it possible to write the command that you use to invoke JavaDoc in a .BAT file and if so, how do I do this?.....I use the JPad edit