Parsing XML with invalid URI for DTD

When parsing an XML file (with aelfred2) I get the following error:
Exception in thread "main" gnu.xml.dom.ls.DomLSException: Absolute URL required with null context: CQCGWProtocol.DTD
at gnu.xml.dom.ls.DomLSParser.doParse(libgcj.so.7)
at gnu.xml.dom.ls.DomLSParser.parse(libgcj.so.7)
at gnu.xml.dom.DomDocumentBuilder.parse(libgcj.so.7)
at CQC.main(CQC.java:44)
Caused by: java.net.MalformedURLException: Absolute URL required with null context: CQCGWProtocol.DTD
at java.net.URL.<init>(libgcj.so.7)
at java.net.URL.<init>(libgcj.so.7)
at gnu.xml.aelfred2.XmlParser.pushURL(libgcj.so.7)
at gnu.xml.aelfred2.XmlParser.parseDoctypedecl(libgcj.so.7)
at gnu.xml.aelfred2.XmlParser.parseProlog(libgcj.so.7)
at gnu.xml.aelfred2.XmlParser.parseDocument(libgcj.so.7)
I'm puzzled, as I have disabled validation:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setIgnoringComments(true);
domFactory.setNamespaceAware(false);
domFactory.setValidating(false);
My goal is to have the parser ignore the DOCTYPE tag and not try to find the DTD. Can someone suggest how you turn this off - apparently, setting the validation to false is not the right approach.
I'm running Java 1.4.2 on Fidora Core 5.
Thanks for suggestions!

Create an org.xml.sax.EntityResolver and apply it to your parser. The API documentation for the interface has an example of how to write one.
And no, turning of validation doesn't turn off processing of DTDs because DTDs are for things other than validation. Entity replacement, for example.

Similar Messages

  • Parsing XML with invalid Unicode Character

    Hi,
    I have developed an application which has an XML as Input. Sometimes the XML I receive has not valid Unicode Characters so I get an Exception as follows for each wrong character.
    javax.xml.transform.TransformerException: An invalid XML
    character (Unicode: 0xa9) was found in the element content of the document. - Ex
    ception
    How Can I parse the Input XML for getting only valid characters? Thank you.

    You are not receiving valid XML. Your parser will assume that the XML file is encoded using UTF-8, unless its header specifies otherwise. Contact the person who sent you the XML and get it fixed. (Often people produce XML containing accented letters from various European languages; in the case the correct encoding is often ISO-8859-1.)

  • Parsing XML with html tags for style

    I'm using flash to pull in XML data, but I want to use html
    tags to be able to style the text. When I add any html, it treats
    it as a sub-node and ignores the data. Also, line breaks in the xml
    are being converted to double spaced paragraphs? The relevant code
    is basically this:
    if (element.nodeName.toUpperCase() == "TEXT")
    {//add text to text array
    ar_text[s]=element.firstChild.nodeValue;
    textbox1.text = ar_text[0];

    try to use htmlText instead text... like this:
    textbox1.htmlText = ar_text[0]
    adam

  • Problem parsing XML with schema when extracted from a jar file

    I am having a problem parsing XML with a schema, both of which are extracted from a jar file. I am using using ZipFile to get InputStream objects for the appropriate ZipEntry objects in the jar file. My XML is encrypted so I decrypt it to a temporary file. I am then attempting to parse the temporary file with the schema using DocumentBuilder.parse.
    I get the following exception:
    org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element '<root element name>'
    This was all working OK before I jarred everything (i.e. when I was using standalone files, rather than InputStreams retrieved from a jar).
    I have output the retrieved XML to a file and compared it with my original source and they are identical.
    I am baffled because the nature of the exception suggests that the schema has been read and parsed correctly but the XML file is not parsing against the schema.
    Any suggestions?
    The code is as follows:
      public void open(File input) throws IOException, CSLXMLException {
        InputStream schema = ZipFileHandler.getResourceAsStream("<jar file name>", "<schema resource name>");
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = null;
        try {
          factory.setNamespaceAware(true);
          factory.setValidating(true);
          factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
          factory.setAttribute(JAXP_SCHEMA_SOURCE, schema);
          builder = factory.newDocumentBuilder();
          builder.setErrorHandler(new CSLXMLParseHandler());
        } catch (Exception builderException) {
          throw new CSLXMLException("Error setting up SAX: " + builderException.toString());
        Document document = null;
        try {
          document = builder.parse(input);
        } catch (SAXException parseException) {
          throw new CSLXMLException(parseException.toString());
        }

    I was originally using getSystemResource, which worked fine until I jarred the application. The problem appears to be that resources returned from a jar file cannot be used in the same way as resources returned directly from the file system. You have to use the ZipFile class (or its JarFile subclass) to locate the ZipEntry in the jar file and then use ZipFile.getInputStream(ZipEntry) to convert this to an InputStream. I have seen example code where an InputStream is used for the JAXP_SCHEMA_SOURCE attribute but, for some reason, this did not work with the InputStream returned by ZipFile.getInputStream. Like you, I have also seen examples that use a URL but they appear to be URL's that point to a file not URL's that point to an entry in a jar file.
    Maybe there is another way around this but writing to a file works and I set use File.deleteOnExit() to ensure things are tidied afterwards.

  • Parsing XML with DTD residing in jar file

    Hi,
    I have problems using crimson parser for my program under JDK 1.4.0b2. It attempts to parse an xml file with SAX. The corresponding lies in a jar file in a different directory but reachable through the classpath. All I get is an exception.
    org.xml.sax.SAXParseException: Relative URI "my.dtd"; kann nicht ohne eine Dokument-URI aufgel�st werden.
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3121)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3115)
    at org.apache.crimson.parser.Parser2.resolveURI(Parser2.java:2702)
    at org.apache.crimson.parser.Parser2.maybeExternalID(Parser2.java:2674)
    at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1125)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:489)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
    at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:326)
    I used Xerces before and it worked fine. I already searched the community for that problem. All hints I found assume that xml file and dtd are in the same directory. Setting the systemId of the input source doesn't fix the problem.
    Is there anyone out there knowing what to do?
    Thanks,
    Thorsten

    Use a Resolver to map a PUBLIC name to a local name:
    <!DOCTYPE DOC PUBLIC "-//gaskin.de//XMLDOC 1.0//EN"
    "http://www.gaskin.de/dtd/xmldoc.dtd">
    public static register() {
       ClassLoader loader = Resolver.class.getClassLoader();
       registerCatalogEntry(
          "-//gaskin.de//XMLDOC 1.0//EN",
          "de/gaskin/resources/dtd/XMLDOC.DTD",
          loader);
    }

  • Persisting unexplained errors when parsing XML with schema validation

    Hi,
    I am trying to parse an XML file including XML schema validation. When I validate my .xml and .xsd in NetBeans 5.5 beta, I get not error. When I parse my XML in Java, I systematically get the following errors no matter what I try:
    i) Document root element "SQL_STATEMENT_LIST", must match DOCTYPE root "null".
    ii) Document is invalid: no grammar found.
    The code I use is the following:
    try {
    Document document;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(true);
    factory.setNamespaceAware(true);
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse( new File(PathToXml) );
    My XML is:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- Defining the SQL_STATEMENT_LIST element -->
    <xs:element name="SQL_STATEMENT_LIST" type= "SQL_STATEMENT_ITEM"/>
    <xs:complexType name="SQL_STATEMENT_ITEM">
    <xs:sequence>
    <xs:element name="SQL_SCRIPT" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <!-- Defining simple type ApplicationType with 3 possible values -->
    <xs:simpleType name="ApplicationType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="DawningStreams"/>
    <xs:enumeration value="BaseResilience"/>
    <xs:enumeration value="BackBone"/>
    </xs:restriction>
    </xs:simpleType>
    <!-- Defining the SQL_SCRIPT element -->
    <xs:element name="SQL_SCRIPT" type= "SQL_STATEMENT"/>
    <xs:complexType name="SQL_STATEMENT">
    <xs:sequence>
    <xs:element name="NAME" type="xs:string"/>
    <xs:element name="TYPE" type="xs:string"/>
    <xs:element name="APPLICATION" type="ApplicationType"/>
    <xs:element name="SCRIPT" type="xs:string"/>
    <!-- Making sure the following element can occurs any number of times -->
    <xs:element name="FOLLOWS" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    and my XML is:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Document : SQLStatements.xml
    Created on : 1 juillet 2006, 15:08
    Author : J�r�me Verstrynge
    Description:
    Purpose of the document follows.
    -->
    <SQL_STATEMENT_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.dawningstreams.com/XML-Schemas/SQLStatements.xsd">
    <SQL_SCRIPT>
    <NAME>CREATE_PEERS_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE PEERS (
    PEER_ID           VARCHAR(20) NOT NULL,
    PEER_KNOWN_AS      VARCHAR(30) DEFAULT ' ' ,
    PRIMARY KEY ( PEER_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITIES_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE COMMUNITIES (
    COMMUNITY_ID VARCHAR(20) NOT NULL,
    COMMUNITY_KNOWN_AS VARCHAR(25) DEFAULT ' ',
    PRIMARY KEY ( COMMUNITY_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITY_MEMBERS_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE COMMUNITY_MEMBERS (
    COMMUNITY_ID VARCHAR(20) NOT NULL,
    PEER_ID VARCHAR(20) NOT NULL,
    PRIMARY KEY ( COMMUNITY_ID, PEER_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_PEER_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE PEERS IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_COMMUNITIES_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE COMMUNITIES IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_COMMUNITY_MEMBERS_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE COMMUNITY_MEMBERS IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITY_MEMBERS_VIEW</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE VIEW COMMUNITY_MEMBERS_VW AS
    SELECT P.PEER_ID, P.PEER_KNOWN_AS, C.COMMUNITY_ID, C.COMMUNITY_KNOWN_AS
    FROM PEERS P, COMMUNITIES C, COMMUNITY_MEMBERS CM
    WHERE P.PEER_ID = CM.PEER_ID
    AND C.COMMUNITY_ID = CM.COMMUNITY_ID
    </SCRIPT>
    <FOLLOWS>CREATE_PEERS_TABLE</FOLLOWS>
    <FOLLOWS>CREATE_COMMUNITIES_TABLE</FOLLOWS>
    </SQL_SCRIPT>
    </SQL_STATEMENT_LIST>
    Any ideas? Thanks !!!
    J�r�me Verstrynge

    Hi,
    I found the solution in the following post:
    Validate xml with DOM - no grammar found
    Sep 17, 2003 10:58 AM
    The solution is to add a line of code when parsing:
    try {
    Document document;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(true);
    factory.setNamespaceAware(true);
    factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse( new File(PathToXml) );
    The errors are gone !!!
    J�r�me Verstrynge

  • How to Parse XML with SAX and Retrieving the Information?

    Hiya!
    I have written this code in one of my classes:
    /**Parse XML File**/
              SAXParserFactory factory = SAXParserFactory.newInstance();
              GameContentHandler gameCH = new GameContentHandler();
              try
                   SAXParser saxParser = factory.newSAXParser();
                   saxParser.parse(recentFiles[0], gameCH);
              catch(javax.xml.parsers.ParserConfigurationException e)
                   e.printStackTrace();
              catch(java.io.IOException e)
                   e.printStackTrace();
              catch(org.xml.sax.SAXException e)
                   e.printStackTrace();
              /**Parse XML File**/
              games = gameCH.getGames();And here is the content handler:
    import java.util.ArrayList;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    class GameContentHandler extends DefaultHandler
         private ArrayList<Game> games = new ArrayList<Game>();
         public void startDocument()
              System.out.println("Start document.");
         public void endDocument()
              System.out.println("End document.");
         public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) throws SAXException
         public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException
         public void characters(char[] ch, int start, int length) throws SAXException
              /**for (int i = start; i < start+length; i++)
                   System.out.print(ch);
         public ArrayList<Game> getGames()
              return games;
    }And here is the xml i am trying to parse:<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <Database>
         <Name></Name>
         <Description></Description>
         <CurrentGameID></CurrentGameID>
         <Game>
              <gameID></gameID>
              <name></name>
              <publisher></publisher>
              <platform></platform>
              <type></type>
              <subtype></subtype>
              <genre></genre>
              <serial></serial>
              <prodReg></prodReg>
              <expantionFor></expantionFor>
              <relYear></relYear>
              <expantion></expantion>
              <picPath></picPath>
              <notes></notes>
              <discType></discType>
              <owner></owner>
              <location></location>
              <borrower></borrower>
              <numDiscs></numDiscs>
              <discSize></discSize>
              <locFrom></locFrom>
              <locTo></locTo>
              <onLoan></onLoan>
              <borrowed></borrowed>
              <manual></manual>
              <update></update>
              <mods></mods>
              <guide></guide>
              <walkthrough></walkthrough>
              <cheats></cheats>
              <savegame></savegame>
              <completed></completed>
         </Game>
    </Database>I have been trying for ages and just can't get the content handler class to extract a gameID and instantiate a Game to add to my ArrayList! How do I extract the information from my file?
    I have tried so many things in the startElement() method that I can't actually remember what I've tried and what I haven't! If you need to know, the Game class instantiates with asnew Game(int gameID)and the rest of the variables are public.
    Please help someone...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    OK, how's this?
    public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) throws SAXException
              current = "";
         public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException
              try
                   if(qualifiedName.equals("Game") || qualifiedName.equals("Database"))
                        {return;}
                   else if(qualifiedName.equals("gameID"))
                        {games.add(new Game(Integer.parseInt(current)));}
                   else if(qualifiedName.equals("name"))
                        {games.get(games.size()-1).name = current;}
                   else if(qualifiedName.equals("publisher"))
                        {games.get(games.size()-1).publisher = current;}
                   etc...
                   else
                        {System.out.println("ERROR - Qualified Name found in xml that does not exist as databse field: " + qualifiedName);}
              catch (Exception e) {} //Ignore
         public void characters(char[] ch, int start, int length) throws SAXException
              current += new String(ch, start, length);
         }

  • Report fails with " Invalid argument for database." error.

    Hi All,
    Several of my reports deployed on Crystal Reports Server 2008 server fails everyday with the following error.
    Error in File ~tmp121c5dc747685036.rpt: Invalid argument for database.
    The error is not consistent, if report A fails today, it is Report B the next day. When I reschedule the reports, they run just fine. They fail only when the daily schedules run at 2:00 AM in the morning. 100 + reports are run at this time and some of the reports that fail run many times with different parameters. Is this error due to scheduling reports many times or is it something else? Appreciate any help with this.
    Thanks
    Bin

    Hi,
    can you please check under <BOBJ installation directory>\BusinessObjects Enterprise 12.0\logging in the log files created by the crystal reports job server for additionaly error messages?
    Regards,
    Stratos
    PS: Do you run CRS 2008 V0 or V1?

  • XML with MTOM-Attachments for BW 7.X

    Hi all,
    My question is regarding loading XML with MTOM-Attachments into BW 7.X.
    It is possible to load XML-Files with a push via a web service DataSource into BW 7.X. The new NetWeaver-Release 7.1 is capable of handling XML-Files with MTOM-attachments. What I do not understand is if and how the Web Service DataSource and the MTOM capabilities of NetWeaver work together.
    Does the capability of NetWeaver 7.1 enable BW to handle MTOM? If it is possible to use MTOM with BW, do I need Usage Type  PI to bring MTOM attachments into BW?
    I have checked several links regarding MTOM, e.g.
    http://help.sap.com/saphelp_nwpi71/helpdata/en/76/fc9c3d9a864aef8139d70759a499fc/frameset.htm 
    or
    https://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/fcbc97b6-0a01-0010-6594-f8208ff674f9&language=en
    Unfortunately I could not find an answer to my question there.
    Thanks and Regards,
    Felix

    Thanks Tammy for the quick reply. Apologies for asking this naive question but since these are planned innovations and subject to change - this means we will not get any of the following benefits if we migrate to BW 7.4 from BW 7.02 and use BO4.1 on top of it now. Yes integrated planning is not applicable to our client.
    SAP BW integrated planning
     SAP BW integrated planning and planning application kit support in Design Studio
     Planning on SAP BW unified models in SAP BW 7.4 for Analysis Office, and Design Studio
    Data connectivity  (Planned Innovation)
     Direct data access to SAP BW for Lumira
    User experience
     BW integrated planning for Design Studio support
     Lumira integration with SAP applications

  • Problem with file URI for external DTD

    Hi All,
    I am getting UnknownHostException when i am trying to parse an XML data as InputSource
    to parser.
    The exception is thrown while to trying resolve file uri
    set for inputsource to locate DTD.
    The code works fine in of the Solaris machine but it throws this exception in
    one particular machine (solaris again). On both Weblogic6.0 with SP2 is running.
    The host "local" it says Unknown is infact a directory.
    I am unable to figure what is wrong. Please let me know asap the reason and if
    there is any solution.
    I am attaching the piece of Code and the Exception stack trace.
    thanks
    ashok
    -------------------code-----------------------
    public boolean doParse(InputSource input)
    throws IOException
    try{
         String realPath=FileHelper.getApplicationRoot();
         SAXParser sp = new SAXParser();
         sp.setContentHandler(this);
         sp.setFeature("http://xml.org/sax/features/validation",true);
         sp.setErrorHandler(new MyErrorHandler(System.err));
    input.setSystemId("file:///"+realPath+"/dtd/");
                   CmgmtOutput.write("System ID set "+input.getSystemId(),1);
                   sp.parse(input);
    }catch
    ------------------Exception--------------------
    java.net.UnknownHostException: local
    at java.net.InetAddress.getAllByName0(InetAddress.java:571)
    at java.net.InetAddress.getAllByName0(InetAddress.java:540)
    at java.net.InetAddress.getByName(InetAddress.java:449)
    at java.net.Socket.<init>(Socket.java:100)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:50)
    at sun.net.NetworkClient.openServer(NetworkClient.java:38)
    at sun.net.ftp.FtpClient.openServer(FtpClient.java:267)
    at sun.net.ftp.FtpClient.<init>(FtpClient.java:381)
    at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:77)
    at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:96)
    at java.net.URL.openStream(URL.java:798)
    at org.apache.xerces.readers.DefaultReaderFactory.createReader(DefaultReaderFactory.java:149)
    at org.apache.xerces.framework.XMLParser.startReadingFromExternalEntity(XMLParser.java:2652)
    at org.apache.xerces.framework.XMLParser.startReadingFromExternalSubset(XMLParser.java:2478)
    at org.apache.xerces.validators.dtd.DTDValidator.startReadingFromExternalSubset(DTDValidator.java:1672)
    at org.apache.xerces.framework.XMLDTDScanner.scanDoctypeDecl(XMLDTDScanner.java:1111)
    at org.apache.xerces.validators.dtd.DTDValidator.scanDoctypeDecl(DTDValidator.java:450)
    at org.apache.xerces.framework.XMLParser.scanDoctypeDecl(XMLParser.java:2102)
    at org.apache.xerces.framework.XMLDocumentScanner$PrologDispatcher.dispatch(XMLDocumentScanner.java:876)
    at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
    at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1208)
    at com.i2.ui.srm.contracts.cmgmt.CMGMTXMLHandler.doParse(CMGMTXMLHandler.java:156)
    at com.i2.ui.srm.contracts.cmgmt.CMGMTXMLHandler.doImport(CMGMTXMLHandler.java:96)
    at com.i2.ui.srm.contracts.cmgmt.CMGMTXMLImportHandler.doImport(CMGMTXMLImportHandler.java:178)
    at com.i2.ui.srm.contracts.cmgmt.CMGMTXMLImportHandler.handleEvent(CMGMTXMLImportHandler.java:77)
    at com.i2.ui.srm.contracts.cmgmt.CMGMTXMLImportHandler.invoke(CMGMTXMLImportHandler.java:42)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.i2.webdriver.rwadmin.pages.PageController.handlePage(PageController.java:337)
    at PageServlet.doPost(PageServlet.java:374)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1631)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

    By making BODY mandatory with 1 record, i am getting the below given error message in Adapter monitoring...
    Sender Adapter v2722 for Party '', Service 'BS_MRS':
    Configured at 2007-08-29 09:40:17 BST
    History:
    - 2007-08-29 09:46:26 BST: Retry interval started. Length: 2.000 s
    - 2007-08-29 09:46:26 BST: Error: Conversion of complete file content to XML format failed around position 0: Exception: ERROR consistency check in recordset structure validation (line no. 3: missing structure(s) before type 'TRL'
    - 2007-08-29 09:46:26 BST: Processing started
    - 2007-08-29 09:46:24 BST: Error: Conversion of complete file content to XML format failed around position 0: Exception: ERROR consistency check in recordset structure validation (line no. 3: missing structure(s) before type 'TRL'
    - 2007-08-29 09:46:24 BST: Processing started
    With Regards
    Amitesh

  • Xmlparser.parse fails when parsing xml with dtd

    Has anybody used successfully called xmlparser.parse in PL/SQL
    to parse an xml file with a dtd? When I try I get the following
    error:
    ERROR at line 1:
    ORA-20100: Error occurred while parsing: Invalid argument
    ORA-06512: at "SYS.XMLPARSER", line 22
    ORA-06512: at "SYS.XMLPARSER", line 69
    ORA-06512: at line 6
    When I remove the dtd reference from the xml file it works.
    (I posted this question yesterday but no responses, so I'm
    trying again...)
    Thanks - Dana

    Please see:
    http://forums.oracle.com/forums/message.jsp?id=617954
    for the solution. Thanks.

  • Parsing XML with Java - seeking advice for method to pursue

    Hi guys
    So here's the deal: I want to parse some XML from a server, get all the data I need from it, then shunt that data to the classes that need it. However, I'm really not sure what the best way of parsing the XML is.
    I've just written a class for obtaining the file, and one for building a DOM from the XML file. But looking at org.w3c.dom in the Java API documentation (see HERE) I'll have to implement shedloads of interfaces to be able to take advantage of the DOM, and I don't even know a lot about it.
    So am I best just writing a simple parser based on regular expressions to get the data I want? There's about 5 attributes in the XML file that I need to get - 5 for each instance of the containing element. So I don't think it'll be hard to do with regular expressions.. plus even if I did decide to implement all the DOM interfaces, the only way I'd know how to do half the stuff is with regular expressions anyway. I mean, how else would you do it? How else could you match up Nodes according to the Strings you're using for the elements, attributes etc?
    I worry that a parser using regular expressions might be too slow... I'm building this as an applet to visually display information from the server. I have nothing to support those fears, I'm just not experienced enough to know whether speed would be a problem if I chose this route... I don't think it would, but really need confirmation of that suspicion being unfounded.
    Any advice would be very, very welcome, as I'm tearing my hair out at the moment, unsure what to do.

    Komodo wrote:But JDOM is not in the core class libraries, is it? So if I want to create an applet embedded into a website, am I able to get people to download that as well?
    Sorry, I don't know anything about applets.
    Komodo wrote:Everyone's advice is appreciated, but my core question remains unanswered - would using regular expressions, considering how simple and unchanging the XML files are, be a viable option in terms of speed?
    Yes! I've done more than my fair share of XML processing with REs. It's not always easy. I often wish I could just use something XPath-like. But it's certainly easy to do and would probably mean that you'd have something up and running quicker than if you spent time investigating pure XML parsing approaches.

  • Parsing XML with VBS at a Windows Server 2008 R2

    Hi
    my name is Marius, and I have a little problem with my vbs script. I use this script to parse an xml File if there are errors inside. In my old environment Windows Server 2003 it would work fine.
    Now I will run this script at a newer Server 2008 R2, and it is not working.
    Dim sName
    sName = "Path to xml file"
    Dim xmlFile
    Dim oneNode
    Dim childNodes, childNode
    Dim attribut
    Dim EventID
    Dim repGroup
    Dim CustomDomain
    Dim ErrorCounter
    BackupNotes = ""
    ErrorCounter = 0
    wscript.Echo "sName: " & sName 'Wird in die Logdatei geschrieben
    set xmlFile = CreateObject("Microsoft.XMLDOM")
    'Es wird die XML Datei geladen
    if xmlFile.load(sName) then
    'Schreibt das Datum und die Uhrzeit des XML Datei in oneNode
    set oneNode = xmlFile.selectSingleNode("//timestamp/systemTime")
    if oneNode is Nothing then
    BackupBeginTime = ""
    BackupEndTime = ""
    BackupBeginDate = ""
    BackupEndDate = ""
    'wscript.echo "Keine Daten vorhanden" 'Wird in die Logdatei geschrieben
    else
    'Friday, November 09, 2012 11:55:32
    BackupBeginTime = right(oneNode.text, 8)
    'nimm von rechts die 8 folgenden Zeichen (11:55:32)
    BackupEndTime = BackupBeginTime
    Dim Laenge
    Laenge = LEN(oneNode.text)
    'zaehlt die Lange des Strings in oneNode 'Friday, November 09, 2012 11:55:32 = 34
    'wscript.echo Laenge
    Laenge = Laenge - 9
    '34 - 9 = 25
    'es wird das Datum aus dem String der XML Datei gebaut, damit es in die DB geschrieben werden kann
    Dim dfsDate
    Dim dfsVon
    Dim dfsBis
    dfsDate = left(oneNode.text, Laenge)
    'nimm von links die 25 folgenden Zeichen (Friday, November 09, 2012)
    dfsVon = inStr(dfsDate, ",")
    'pruefe wo das 1. Komma ist und schreiben die Zeichen in die Variable
    dfsVon = dfsVon + 1
    'wscript.echo dfsVon
    dfsBis = LEN(dfsDate)
    'wscript.echo dfsBis
    dfsDate = mid(dfsDate, dfsVon, dfsBis)
    'Nimm die daten ab dem Komme bis zum Ende des Strings
    dfsDate = trim(dfsDate)
    'entferne die Leerzeichen Vor und Nach dem Sting
    'Wscript.echo dfsDate
    dfsDate = cdate(dfsDate)
    'dfsDate = November 09, 2012 und wird in 09.11.2012 durch cdate umgebaut
    'wscript.echo dfsDate
    BackupBeginDate = dfsDate
    BackupEndDate = dfsDate
    end if
    set oneNode = xmlFile.selectSingleNode("//replicationGroup")
    'Sucht nach der Replikationsgruppe und der Domain
    repGroup = oneNode.getAttribute("name")
    CustomDomain = oneNode.getAttribute("domain")
    if oneNode is Nothing then
    wscript.echo "Keine Daten vorhanden"
    'Wird in die Logdatei geschrieben
    else
    wscript.echo "RepGroup: " & repGroup
    'holt sich den Namen der Replikations Gruppe 'Wird in die Logdatei geschrieben
    wscript.echo "Domain: " & CustomDomain
    'holt sich den Domain 'Wird in die Logdatei geschrieben
    end if
    set childNodes = xmlFile.selectNodes("//serverErrors/error")
    for each childNode in childNodes
    'Zugriff auf den Type und die Event ID
    attribut = childNode.getAttribute("type")
    EventID = childNode.getAttribute("id")
    if isNull(attribut) then
    wscript.echo "MultiParameter nicht gefunden" 'Wird in die Logdatei geschrieben
    'Fehlerhandling, da attribut nicht vorhanden
    'wenn keines dieser Attribute vorhanden ist, ist der Backupjob erfolgreich
    ErrorCounter = 0
    else
    ' pruefen was im attribut steht und dann entscheiden ob erfolgreich oder nicht
    if(attribut = "error") then
    if(EventID = "6002") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &")"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - http://support.microsoft.com/kb/953527" 'Wird in die Logdatei geschrieben
                   'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
                    ErrorCounter = ErrorCounter + 1
    elseif(EventID = "11004") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Temp File)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Es konnten nicht alle Daten kopiert werden, Temporaere Dateien http://social.technet.microsoft.com/wiki/contents/articles/406.dfsr-does-not-replicate-temporary-files.aspx"
    'Wird in die Logdatei geschrieben
                   'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
                    ErrorCounter = ErrorCounter + 0
    elseif(EventID = "4302") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Freigabeverletzung)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Freigabeverletzung http://support.microsoft.com/kb/973836 - Fehler ist bekannt und kann ignoriert werden" 'Wird in die
    Logdatei geschrieben
                   'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
                    ErrorCounter = ErrorCounter + 0
    elseif(EventID = "4208") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Staging Quota)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Staging Quota zu klein http://blogs.technet.com/b/askds/archive/2011/07/13/how-to-determine-the-minimum-staging-area-dfsr-needs-for-a-replicated-folder.aspx"
    'Wird in die Logdatei geschrieben
                   'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
                    ErrorCounter = ErrorCounter + 1
    else
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &")"
    wscript.echo "EventID: "& attribut &" ("& EventID & ")"  'Wird in die Logdatei geschrieben
                   'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
                    ErrorCounter = ErrorCounter + 1
    end if
    end if
    if(attribut = "warning") then
    if (EventID = "4208") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Staging Quota)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Staging Quota zu klein http://www.retherfords.com/blogs/CoryRetherford/Lists/Posts/Post.aspx?ID=104 - Fehler ist bekannt und
    kann ignoriert werden"  'Wird in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    elseif (EventID = "11004") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Temp Datei)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Es konnten nicht alle Daten kopiert werden, Temporaere Dateien - Fehler ist bekannt und kann ignoriert werden"  'Wird
    in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    elseif (EventID = "4302") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Freigabeverletzung)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Freigabeverletzung http://support.microsoft.com/kb/973836 - Fehler ist bekannt und kann ignoriert werden"  'Wird
    in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    elseif (EventID = "4206") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" - Staging Quota)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - Staging Quota zu klein http://mpwiki.viacode.com/default.aspx?g=posts&t=123818"  'Wird in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    elseif (EventID = "11001") then
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &" -)"
    wscript.echo "EventID: "& attribut &" ("& EventID & ") - "  'Wird in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    else
    BackupNotes = BackupNotes & " "& attribut &"("& EventID &")"
    wscript.echo "EventID: "& attribut &" ("& EventID & ")"  'Wird in die Logdatei geschrieben
    'Fehlerbehandlung mit ErrrorCounter - Fehler bekannt = 0 Fehler unbekannt + 1
    ErrorCounter = ErrorCounter + 0
    end if
    end if
    end if
    next
    else
    wscript.echo "Pfad (sName): XML Datei nicht vorhanden" 'Wird in die Logdatei geschrieben
    ErrorCounter = ErrorCounter + 1
    'Wenn keine XML Datei vorhanden ist, wird dies in die DB geschrieben
    BackupBeginTime = ""
    BackupEndTime = ""
    BackupBeginDate = ""
    BackupEndDate = ""
    BackupNotes = "XML Datei nicht vorhanden"
    end if
    Had somebody a Info for me what I'm doing wrong :)
    Thanks & Regards
    Marius

    Hi JRV,
    I have checked my script und I have get it running by wscript.
    And I have an error with the funktion cdate:
    sName: \\S-49-NICSAS-201.nicsas.local\_logs\RH\S-49-RHBAD-001\DFS\S-49-RHBAD-001-Bad_Users.xml
    10
    27
    December 19, 2013
    C:\_scripts\xmltest.vbs(56, 3) Microsoft VBScript runtime error: Type mismatch:'cdate'
    THis is the Code:
    dfsDate = left(oneNode.text, Laenge)
    'nimm von links die 25 folgenden Zeichen (Friday, November 09, 2012)
    dfsVon = inStr(dfsDate, ",")
    'pruefe wo das 1. Komma ist und schreiben die Zeichen in die Variable
    dfsVon = dfsVon + 1
    wscript.echo dfsVon
    dfsBis = LEN(dfsDate)
    wscript.echo dfsBis
    dfsDate = mid(dfsDate, dfsVon, dfsBis)
    'Nimm die daten ab dem Komme bis zum Ende des Strings
    dfsDate = trim(dfsDate)
    'entferne die Leerzeichen Vor und Nach dem Sting
    Wscript.echo dfsDate
    dfsDate = cdate(dfsDate)
    'dfsDate = November 09, 2012 und wird in 09.11.2012 durch cdate umgebaut
    wscript.echo dfsDate
    I'm not sure why it is not working, could you help?
    Thanks & Regards
    Marius

  • Parsing xml with namespaces

    Hi
    I have to parse a xml file with 2 namespaces.
    The file looks like as follows
    <AA xmlns="http://XX.com/provider/C/D/E/F/2010/">
    <BB xmlns="">
    <Id>262</Id>
    <Time>2011-03-10T13:55:00.000-06:00</Time>
    <Indicator>true</Indicator>
    </BB>
    </AA>
    i tried following 3 methods to parse this xml file but failed
    PROCEDURE LOAD_XML
    IS
    l_clob := ' <<Above XML Content Here >>';
    lv_root CONSTANT VARCHAR2(1000) := '/AA/BB'; /* Tried lv_root CONSTANT VARCHAR2(1000) := 'AA/BB' with all the three methods */
    /* Method 1 */ lv_namespace constant varchar2(1000) := 'xmlns="http://XX.com/provider/C/D/E/F/2010/"';
    /* Method 2 */ lv_namespace constant varchar2(1000) := 'xmlns="http://XX.com/provider/C/D/E/F/2010/" xmlns=""';
    /*Method 3 */ lv_namespace constant varchar2(1000) := 'xmlns="http://XX.com/provider/C/D/E/F/2010/"/xmlns=""';
    BEGIN
    l_parser := dbms_xmlparser.newParser;
    BEGIN
    dbms_xmlparser.parseClob(l_parser, l_clob);
    END;
    l_doc := dbms_xmlparser.getDocument(l_parser);
    -- Free resources associated with the CLOB and Parser now they are no longer needed.
    dbms_xmlparser.freeParser(l_parser);
    l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),lv_root,lv_namespaces );
    FOR cur_rec IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
    l_n := dbms_xmldom.item(l_nl, cur_rec);
    lv_rows_inserted_cnt := lv_rows_inserted_cnt + 1;
    dbms_output.put_line('I am Here');
    lv_rows_processed_cnt := lv_rows_inserted_cnt;
    dbms_xmldom.freeDocument(l_doc);
    l_clob := null;
    dbms_output.put_line(lv_rows_processed_cnt||' Rows Parsed ');
    END LOAD_XML ;
    Every time zero rows are being parsed and it's not going into the for loop at all.
    How to parse these kind of multiple namespaces (Especially default and unassigned namespaces ) ?
    Thanks
    Pramod

    As Anton showed, you don't need namespace if you directly access target node with the descendant axis.
    However, I guess it's a simplified example so if you need it in a more complex case, this will do it :
    DECLARE
    l_clob clob := '<AA xmlns="http://XX.com/provider/C/D/E/F/2010/">
    <BB xmlns="">
    <Id>262</Id>
    <Time>2011-03-10T13:55:00.000-06:00</Time>
    <Indicator>true</Indicator>
    </BB>
    </AA>';
    lv_root       CONSTANT VARCHAR2(1000) := '/ns1:AA/BB/*';
    lv_namespaces CONSTANT VARCHAR2(1000) := 'xmlns:ns1="http://XX.com/provider/C/D/E/F/2010/"';
    l_parser dbms_xmlparser.Parser := dbms_xmlparser.newParser;
    l_doc    dbms_xmldom.DOMDocument;
    l_nl     dbms_xmldom.DOMNodeList;
    l_n      dbms_xmldom.DOMNode;
    lv_rows_inserted_cnt  NUMBER := 0;
    lv_rows_processed_cnt NUMBER;
    BEGIN
    dbms_xmlparser.parseClob(l_parser, l_clob);
    l_doc := dbms_xmlparser.getDocument(l_parser);
    dbms_xmlparser.freeParser(l_parser);
    l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc), lv_root, lv_namespaces);
    FOR cur_rec IN 0 .. dbms_xmldom.getLength(l_nl) - 1
    LOOP
       l_n := dbms_xmldom.item(l_nl, cur_rec);
       lv_rows_inserted_cnt := lv_rows_inserted_cnt + 1;
       dbms_output.put_line(dbms_xmldom.getNodeValue(dbms_xmldom.getFirstChild(l_n)));
    END LOOP;
    lv_rows_processed_cnt := lv_rows_inserted_cnt;
    dbms_xmldom.freeDocument(l_doc);
    dbms_output.put_line(lv_rows_processed_cnt||' Rows Parsed ');
    END;
    /If you're on version 10.2 (or +), maybe you'll find easier to use XMLTable instead :
    SQL> select *
      2  from xmltable(
      3    xmlnamespaces('http://XX.com/provider/C/D/E/F/2010/' as "ns1"),
      4    '/ns1:AA/BB'
      5    passing xmltype('<AA xmlns="http://XX.com/provider/C/D/E/F/2010/">
      6  <BB xmlns="">
      7  <Id>262</Id>
      8  <Time>2011-03-10T13:55:00.000-06:00</Time>
      9  <Indicator>true</Indicator>
    10  </BB>
    11  </AA>')
    12    columns id        number                   path 'Id',
    13            time      timestamp with time zone path 'Time',
    14            indicator varchar2(10)             path 'Indicator'
    15  )
    16  ;
            ID TIME                                              INDICATOR
           262 10/03/11 13:55:00,000000 -06:00                   true

  • Parsing xml with microsoft VM 1.1

    Hi all,
    I hav an applet, compiled with -target 1.1, which makes use of XML, so I've created an extra cab-file with all the javax.xml.parser classes and all the org.w3c.dom classes in it. This applet needs to run on Microsoft-based machines (Microsoft (R) VM for Java, 5.0 Release 5.0.0.3805), and when I read the xml-file it keeps throwing java.lang.NoClassDefFoundError on
    Error loading class: javax.xml.parsers.ParserConfigurationException.
    That class is definitely in the extra cab-file I provide, but apparently the appletloader still can't find it. I extracted those classes from
    \j2sdk1.4.2_08\jre\lib\rt.jar.
    Am I right in guessing that those classes should be compiled with target 1.1 as well? Or am I missing something else? If you want to see any code, let me know.
    Thanks for any help on this one,
    Stef

    Hi all,
    I hav an applet, compiled with -target 1.1, which makes use of XML, so I've created an extra cab-file with all the javax.xml.parser classes and all the org.w3c.dom classes in it. This applet needs to run on Microsoft-based machines (Microsoft (R) VM for Java, 5.0 Release 5.0.0.3805), and when I read the xml-file it keeps throwing java.lang.NoClassDefFoundError on
    Error loading class: javax.xml.parsers.ParserConfigurationException.
    That class is definitely in the extra cab-file I provide, but apparently the appletloader still can't find it. I extracted those classes from
    \j2sdk1.4.2_08\jre\lib\rt.jar.
    Am I right in guessing that those classes should be compiled with target 1.1 as well? Or am I missing something else? If you want to see any code, let me know.
    Thanks for any help on this one,
    Stef

Maybe you are looking for

  • Disk repair

    I noticed my laptop was peforming very slowly so I ran a disk utility verification and got this: Disk utlity would not let me repair it so I assumed it would need to be done from the leopard install disc. I chose the disc for my startup and rebooted.

  • How do i clean cache and harddrive

    I have deleted many photos and files not currently needed.  But my hard drive still is quite ful.  How do i clean it out further?

  • Classic synchronizing problem

    My Classic is a couple of years old and has been restored about three times now. For some reason(s) it crashes and have to go thru the resoration stages for it to work properly. Now it connects to iTunes but but has trouble synchronizing when music f

  • Configuration of JCo

    Hi Friends,     Can Any Body Send JCo Configuration Steps such how to configure ? With Regards\ Vijay

  • Using BT Big Button 100 with Virgin Media 1571 ans...

    Hi there - We are looking at getting the BT Big Button 100 for my elderly in-laws but need to find out if the 1571 shortcut button on it will work with the Virgin Media answering service, instead of BT's own? (they have a Virgin Media package for pho