XML creation/parsing/validation & performance

Hello friends. I'm faced with a situation in which I need to create and parse many relatively small xml documents. Most of the XML I will be exchanging is very simple, such as:
<? xml version="1.0"?>
<transactionId>12345</transactionId>
<accountId>98765</accountId>
<address>123 Main Street</address>
I have done enough research and prototyping to create and parse these simple documents using the DOM model. I have really started to wonder if I'd be better of simply hardcoding the creation and parsing of these documents. I'm getting some of these documents as a String over HTTP and then creating a DOM which I then can parse and am just not sure if what I am gaining in good programming practice is worth incurring the overhead of the DOM creation and parsing process.
I'm even more divided on the issue of using DTDs or XML Schemas to validate the structure of these tiny documents. I will be having to exchange a lot of these tiny XML messages and am comfortable with the fact that the parties I am trading XML with are not going to be changing things up on the fly.
On the other hand, I am a beginner in the XML world and am sure there could be a hundred things I haven't thought off.
I am grateful for any assistance.
CM

Also,
I assume that the values in you XML document are values from Java Objects, so why not have an interface defining a "toXml()" method for application classes to implement. All the classes would need to do is to know how to write its properties (variables) to an XML document. Again JDOM can handle his very easily... see below code....
/** method to return the entity properties as an XML string.
* @return the objects properties in an XML document String.
public String toXml() {
XMLOutputter out = null;
String xml = null;
Document document = new Document(new Element( "gallery-xml" ));
Element root = document.getRootElement();
Element content = new Element("gallery");
content.addContent(new Comment("Details of Gallery as an XML document"));
* Add attributes to xml document
DateFormat format = DateFormat.getDateInstance();
content.addContent(new Element( "image-id" ).addContent( getUUID() ));
content.addContent(new Element( "name" ).addContent( this.getImageName() ));
content.addContent(new Element( "student-name" ).addContent( this.getStudentName() ));
//content.addContent(new Element( "image-bytes" ).addContent( new String(this.getImageBytes()) ));
content.addContent(new Element( "image-file" ).addContent( this.getImageFile() ));
content.addContent(new Element( "date-created" ).addContent( format.format( this.getDateCreated() )));
content.addContent(new Element( "description" ).addContent( this.getDescription() ));
content.addContent(new Element( "subset" ).addContent( this.getSubset() ));
content.addContent(new Element( "year" ).addContent( this.getYear() ));
content.addContent(new Element( "course-id" ).addContent( this.getCourseId() ));
root.addContent( content );
//write to a string
out = new XMLOutputter(" ", true);
xml = out.outputString(document);
if (Logger.DEBUG) System.out.println( out.outputString( document ) );
return xml;

Similar Messages

  • Parse failed: Exception DBD, The supplied XML is not valid[Measures].[SAP_OBJECT_NAME] State:N/A error for hidden KFs when migrated to HANA

    Hi All
    Please help me with the following query. We are migrating SAP BW 7.4 on Oracle to HANA. We have few WEBI report's universes built on BEx queries. In one of those reports there are some hidden RKFs, these works perfectly fine in reports based on oracle. Now we migrated to HANA in development system and when i refresh the universe structure they started giving errors like "Parse failed: Exception DBD, The supplied XML is not valid[Measures].[SAP_OBJECT_NAME] State:N/A". The object giving this error is in hidden state. I tried to unhide it and run the report then it runs fine but that not the client want as there might be so many hidden KFs in other reports also. BO version is 4.1 SP 2. We are on SAPKW74006 support package on BW side. Is there any notes to correct this error. Please pass me the relevant links. Highly appreciate your help.
    Thanks
    Dwaraka

    DCA-40012: The Web Service call failed. A connection to the target Web Service could not be created.
    First of all test the web service you have created in model project. Right click the web service name and select "Test WebService". If you see any issue(s) while testing fix it first before you run the jspx page.
    Check the port number in the URL and connections.xml, it have to be same.

  • XML File Tags Validation Using Oracle.

    Dear Forum Members,
    I have a doubt regarding XML File Tags Validation.
    First I will explain My Requirement.
    1. I have to generate an XML File in a Predefined Format.
    2. User will add some data in the elements, or he may copy the same elements and change to some data like
    <Emp><Empno>10</Empno></Emp>
    The above tag will be generated by the application.
    User will copy the same and change to
    <Emp><Empno>20</Empno></Emp>.
    Now he want to Upload the Changed XML File to the Database table. This is done by parsing the XML File.
    The Creation and Parsing section is over. But before Parsing I want to check for the Validation of the XML Tag. i.e. whether the tag he has copied <Emp><Empno>10</Empno></Emp> is chaned by mistake to
    <Emp><Empno>10</Empno></Emps> or some other Mistakes.
    What I have to Do..
    Regards
    Madhu K

    I still think that my previous response is valid:
    If you e.g. include (concat) your DTD in your XML it will be validated against it!
    See e.g.:
    michaels>  select xmltype (xml_dtd || your_xml) your_validated_xml
      from (select '<SSDDATA>
                     <KEY><![CDATA[6707]]></KEY>
                     <FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
                     <DEFAULT></DEFAULT>
                     <MIN></MIN>
                     <MAX></MAX>
                     <UNIT></UNIT>
                     <FORMULA></FORMULA>
                     <FORMULA></FORMULA>
                     <FORMULA-DESC></FORMULA-DESC>
                     <ADVANCED-FORMULA></ADVANCED-FORMULA>
                     <INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
                     <DATA-DESC-REPORT></DATA-DESC-REPORT>
                     <REV-DESC></REV-DESC>
                    </SSDDATA>' your_xml,
                   '<?xml version="1.0"?>
                    <!DOCTYPE SSDDATA [
                      <!ELEMENT SSDDATA (KEY,FINISHED,DEFAULT,MIN,MAX,UNIT,(FORMULA)+,FORMULA-DESC,ADVANCED-FORMULA,INTERNAL-ADAPT-DESC,DATA-DESC-REPORT,REV-DESC)>
                      <!ATTLIST SSDDATA xmlns CDATA #FIXED "">
                      <!ELEMENT KEY (#PCDATA)>
                      <!ATTLIST KEY xmlns CDATA #FIXED "">
                      <!ELEMENT FINISHED (#PCDATA)>
                      <!ATTLIST FINISHED xmlns CDATA #FIXED "">
                      <!ELEMENT DEFAULT EMPTY>
                      <!ATTLIST DEFAULT xmlns CDATA #FIXED "">
                      <!ELEMENT MIN EMPTY>
                      <!ATTLIST MIN xmlns CDATA #FIXED "">
                      <!ELEMENT MAX EMPTY>
                      <!ATTLIST MAX xmlns CDATA #FIXED "">
                      <!ELEMENT UNIT EMPTY>
                      <!ATTLIST UNIT xmlns CDATA #FIXED "">
                      <!ELEMENT FORMULA EMPTY>
                      <!ATTLIST FORMULA xmlns CDATA #FIXED "">
                      <!ELEMENT FORMULA-DESC EMPTY>
                      <!ATTLIST FORMULA-DESC xmlns CDATA #FIXED "">
                      <!ELEMENT ADVANCED-FORMULA EMPTY>
                      <!ATTLIST ADVANCED-FORMULA xmlns CDATA #FIXED "">
                      <!ELEMENT INTERNAL-ADAPT-DESC EMPTY>
                      <!ATTLIST INTERNAL-ADAPT-DESC xmlns CDATA #FIXED "">
                      <!ELEMENT DATA-DESC-REPORT EMPTY>
                      <!ATTLIST DATA-DESC-REPORT xmlns CDATA #FIXED "">
                      <!ELEMENT REV-DESC EMPTY>
                      <!ATTLIST REV-DESC xmlns CDATA #FIXED "">
                    ]>' xml_dtd
              from dual)
    YOUR_VALIDATED_XML                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
    <?xml version="1.0"?>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                    <!DOCTYPE SSDDATA [                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                      <!ELEMENT SSDDATA (KEY,FINISHED,DEFAULT,MIN,MAX,UNIT,(FORMULA)+,FORMULA-DESC,ADVANCED-FORMULA,INTERNAL-ADAPT-DESC,DATA-DESC-REPORT,REV-DESC)>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                      <!ATTLIST SSDDATA xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ELEMENT KEY (#PCDATA)>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ATTLIST KEY xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ELEMENT FINISHED (#PCDATA)>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                      <!ATTLIST FINISHED xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                      <!ELEMENT DEFAULT EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ATTLIST DEFAULT xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ELEMENT MIN EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ATTLIST MIN xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ELEMENT MAX EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ATTLIST MAX xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ELEMENT UNIT EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                      <!ATTLIST UNIT xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                      <!ELEMENT FORMULA EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ATTLIST FORMULA xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                      <!ELEMENT FORMULA-DESC EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                      <!ATTLIST FORMULA-DESC xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                      <!ELEMENT ADVANCED-FORMULA EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                      <!ATTLIST ADVANCED-FORMULA xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                      <!ELEMENT INTERNAL-ADAPT-DESC EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ATTLIST INTERNAL-ADAPT-DESC xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
                      <!ELEMENT DATA-DESC-REPORT EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                      <!ATTLIST DATA-DESC-REPORT xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                      <!ELEMENT REV-DESC EMPTY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                      <!ATTLIST REV-DESC xmlns CDATA #FIXED "">                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                    ]><SSDDATA>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                     <KEY><![CDATA[6707]]></KEY>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
                     <FINISHED><![CDATA[This is a Finished data ]]></FINISHED>                                                                                                                                                                                                                                                                            

  • SOLVED: XSD validation performance disaster

    Is it possible to speed-up XMLType schemaValidate() and isSchemaValid() functions somehow?
    The following statement take ~one second of CPU time per table row on Pentium4:
    update tbl set is_valid = func(xml);
    where func(xml) is begin return xml.isSchemaValid('schema.xsd'); end;
    Looks like like full XSD re-parse for every row.
    The xml is 600 bytes long on average and schema is 40k formated text. The XML column is non-schema based XMLType. The schema name is constant, but I need to process relatively large number of xml fragments.
    Server is 10.2.0.3 so bug 5099703 does not apply.
    I see two complimentary options:
    - load Xerces2-J and validate with grammar caching, and hope it may be faster;
    - split the work between dbms_scheduler one-shot jobs to do processing in parallel, or maybe just parallel update will be enough.
    But keeping it simple would be the best option at all.

    I hope my solution will be in help for someone struggling with pure performance of PL/SQL XMLType validation functions.
    The performance in my case is two orders of magnitute better now: 80 rows/sec instead of 1 row/sec.
    I created custom function that could be used as:
    update messages set xml_is_valid =
        decode(xml_validator.isSchemaValid(xmlserialize(content xml), 'KRFileR.xsd'), 1, 'Y', 'N') The XML_VALIDATOR package is:
    create or replace package xml_validator as
    function isSchemaValid(xml clob, schema varchar2) return number;
    procedure schemaValidate(xml clob, schema varchar2);
    end;
    show err
    create or replace package body xml_validator as
    function isSchemaValid(xml clob, schema varchar2) return number
        as language java
        name 'xmlvalidator.XMLValidator.isSchemaValid(
            oracle.sql.CLOB,
            java.lang.String
            ) return int';
    procedure schemaValidate(xml clob, schema varchar2)
        as language java
        name 'xmlvalidator.XMLValidator.schemaValidate(
            oracle.sql.CLOB,
            java.lang.String
    end;
    show errThe XMLValidator class itself:
    package xmlvalidator;
    import java.io.IOException;
    import java.io.ByteArrayOutputStream;
    import java.io.StringReader;
    import java.util.HashMap;
    import java.sql.SQLException;
    import oracle.xml.parser.v2.*;
    import oracle.xml.parser.schema.*;
    import oracle.sql.CLOB;
    import org.xml.sax.EntityResolver;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    public class XMLValidator {
      //protected static HashMap<String, DOMParser> cache = new HashMap<String, DOMParser>();
        protected static HashMap cache = new HashMap(); // oracle java is 1.4
        protected static EntityResolver resolver = new OracleSchemaEntityResolver();
        protected static ByteArrayOutputStream errors = new ByteArrayOutputStream();
        public static String getErrors() {
            return errors.toString();
        // mimick XMLType functions semantic
        public static int isSchemaValid(CLOB xml, String schema) {
            try {
                schemaValidate(xml, schema);
            } catch (Exception e) {
                return 0;
            return 1;
        public static void schemaValidate(CLOB xml, String schema)
                throws XMLParseException, SAXException, IOException, XSDException, SQLException {
          //DOMParser parser = cache.get(schema);
            DOMParser parser = (DOMParser)cache.get(schema);
            if (parser == null) {
                XSDBuilder xsdbuild = new XSDBuilder();
                xsdbuild.setEntityResolver(resolver);
                XMLSchema xmlschema = xsdbuild.build(resolver.resolveEntity(null, schema));
                parser = new DOMParser();
                parser.setXMLSchema(xmlschema);
                parser.setValidationMode(XMLParser.SCHEMA_VALIDATION);
                parser.setErrorStream(errors);
                cache.put(schema, parser); // the whole parser is cached to avoid unknown
                                           // hidden costs of creating new parser
            errors.reset();
            parser.reset();
            parser.parse(new InputSource(xml.getCharacterStream()));
            parser.reset();
    }The OracleSchemaEntityResolver class to pull schema definition from Oracle registered schemas:
    package xmlvalidator;
    import oracle.xml.parser.schema.*;
    import oracle.xml.parser.v2.*;
    import java.net.*;
    import java.io.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    import java.util.*;
    import java.sql.*;
    import oracle.jdbc.*;
    public class OracleSchemaEntityResolver implements EntityResolver {
        protected static Connection conn;
        protected static PreparedStatement stmt;
        static {
            try {
                conn = DriverManager.getConnection("jdbc:default:connection:");
                stmt = conn.prepareStatement(
                    "select xmlserialize(document schema) schema from user_xml_schemas where schema_url = ?"
            } catch(Exception e) { throw new RuntimeException(e); }
        public InputSource resolveEntity(String targetNS, String systemId)
                throws SAXException, IOException {
            Reader r;
          //System.out.println("resolving: " + targetNS + ":" + systemId);
            try {
                stmt.setString(1, systemId);
                ResultSet rs = stmt.executeQuery();
                rs.next();
                r = rs.getCharacterStream(1);
                rs.close(); // CLOB locator should be still valid even after ResultSet is closed
            } catch(SQLException e) { throw new RuntimeException(e); }
            InputSource src = new InputSource(r);
            src.setSystemId(systemId);
            return src;
    }Create JAR with makejar.bat:
    del XMLValidator.jar
    cd XMLValidator/src
    jar cf ../../XMLValidator.jar xmlvalidator/XMLValidator.java xmlvalidator/OracleSchemaEntityResolver.java
    pauseLoad into database with load.bat:
    set u=scott/qwerty@//server.domain.com:1521/orcl
    set r="((* SCOTT)(* PUBLIC)(* SYS))"
    call loadjava -thin -force -user %u% -resolver %r% -resolve XMLValidator.jar
    pauseEnjoy!

  • Supplied XML is not valid

    Hi All,
    While refreshing a Webi report, I am getting following error: 
    "A database error occured. The database error text is: The supplied XML is not valid. [Measures].[0701FBYSYG9KJQ47GRMMAVZ89]. (WIS 10901) ".
    Could you please let me know how to resolve it?
    Regards,

    definition of one of your measure objects selected in the webi query is not correct in the universe. Parse the objects in the universe and find the objects with incorrect definition. This may be due to deletion of a key figure from BEx query. You can refresh the universe structure for updating it.

  • XML SAX dtd Validation Problem

    Hi,
              I’m having problems getting an xml document to validate within Weblogic 8.1. I am trying to parse a document that references both a dtd and xsd. Both the schema and dtd reference need to be substituted so they use local paths. I specify the schema the parser should use and have created an entityResolver to change the dtd reference.
              When this runs as a standalone app from eclipse the file parses and validates without a problem. When deployed to the app server the process seems to be unable read the contents of the dtd. Its not that it cannot find the file (no FileNotFoundException is thrown but this can be created if I delete the dtd) rather it seems to find no declared elements.
              Initial thought was that the code didn’t have access to read the dtd from its location on disk, to check I moved the dtd to within the deployed war and reference as a resource. The problem still persists.
              Code Snippet:
              boolean isValid = false;
              try {
              // Create and configure factory
              SAXParserFactory factory = SAXParserFactoryImpl.newInstance();
              factory.setValidating(true);
              factory.setNamespaceAware(true);
              // To be notified of validation errors in the XML document,
              // add a custom error handler to the document builder
              PIMSFeedFileValidationHandler handler
              = new PIMSFeedFileValidationHandler();
              // Create and Configure Parser
              SAXParser parser = factory.newSAXParser();
              parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
              parser.setProperty(NAMESPACE_PROPERTY_KEY, getSchemaFilePath());
              // Set reader with entityResolver for dtd
              XMLReader xmlReader = parser.getXMLReader();
              xmlReader.setEntityResolver(new SAXEntityResolver(this.dtdPath));
              // convert file to URL, as it is a remote file
              URL url = super.getFile().toURL();
              // Open an input stream and parse
              InputStream is = url.openStream();
              xmlReader.setErrorHandler(handler);
              xmlReader.parse(new InputSource(is));
              is.close();
              // get the result of parsing the document by checking the
              // errorhandler's isValid property
              isValid = handler.isValid();
              if (!isValid) {
              LOGGER.warn(handler.getMessage());
              LOGGER.debug("XML file is valid XML? " + isValid);
              } catch (ParserConfigurationException e) {
              LOGGER.error("Error parsing file", e);
              } catch (SAXException e) {
              LOGGER.error("Error parsing file", e);
              } catch (IOException e) {
              throw new FeedException(e);
              return isValid;
              See stack trace below for a little more info.
              2005-01-28 10:24:09,217 [DEBUG] [file] - Attempting validation of file 'cw501205.wa1.xml' with schema at 'C:/pims-feeds/hansard/schema/hansard-v1-9.xsd'
              2005-01-28 10:24:09,217 [DEBUG] [file] - Entity Resolver is using DTD path file:C:/Vignette/runtime_services/8.1/install/common/nodemanager/
              VgnVCMServer/stage/pims-hansard/pims-hansard.war/WEB-INF/classes/com/morse/pims/cms/feed/sax/ISO-Entities.dtd
              2005-01-28 10:24:09,227 [DEBUG] [file] - Creating InputSource at: file:C:/Vignette/runtime_services/8.1/install/common/nodemanager/VgnVCMServer/stage/pims-hansard/pims-hansard.war/WEB-INF/classes/com/morse/pims/cms/feed/sax/ISO-Entities.dtd
              2005-01-28 10:24:09,718 [WARN ] [file] - org.xml.sax.SAXParseException: Element type "Hansard" must be declared.
              org.xml.sax.SAXParseException: Element type "Session" must be declared.
              org.xml.sax.SAXParseException: Element type "DailyRecord" must be declared.
              org.xml.sax.SAXParseException: Element type "Volume" must be declared.
              org.xml.sax.SAXParseException: Element type "Written" must be declared.
              org.xml.sax.SAXParseException: Element type "WrittenHeading" must be declared.
              org.xml.sax.SAXParseException: Element type "Introduction" must be declared.
              … continues for all the elements in the doc
              2005-01-28 10:24:10,519 [DEBUG] [file] - XML file is valid XML? false
              2005-01-28 10:24:10,519 [WARN ] [file] - Daily Part file 'cw501205.wa1.xml' was not valid XML and was not processed.
              Has anybody seen this behavior before with weblogic and if so how have you resolved the issue.
              Thanks in Advance
              Adam

    It looks like you clicked on "Post" before you got around to explaining your problem. I don't see any error messages or any description of what was supposed to happen and what happened instead.
    Now, I don't know anything about XML Schema, but just guessing at how that unique name feature might be designed, and just guessing that your unique name is actually in the <userId> element, I would suggest that this:
    <xsd:unique name="un_name"> 
      <xsd:selector xpath="USER"/> 
      <xsd:field xpath="."/> 
    </xsd:unique> is at fault because it doesn't mention the <userId> element anywhere.

  • XML Document parsing issue

    Hello I am doing some SOAP XML stuff and I am having an issue that hopefully I can get some help with.
    Is XML like this valid to do in a SOAP message?
    <prompt>1 &_lt_; 0? <prompt>It's suppose to represent "1 < 0?"
    * the forum formatter seems to eat up my encoded text and transofrms it into acutal "<" so I am placing underscores "_" everywhere to keep the text. so above is actually without underscores
    From what I've read I think it is. I have text like this transported as part of the overall SOAP message to my client from the server.
    In my code I do:
    // Create an instance of the DocumentBuilderFactory
    DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
    // Get the DocumentBuilder from the factory
    DocumentBuilder builder = documentFactory.newDocumentBuilder();
    Document doc = builder.parse(inputStream);
    ...inputStream is an InputStream (specifically ByteArrayInputStream) containing the XML.
    The issue I am having is that wherever I have an '&' (such as "&_lt_;" or "&_gt_;" or "&" etc...) the parsing seems to get cut off and the rest of the string doesn't seem to get parsed. So the above string "1 &_lt_; 0?" ends up being "1 ".
    Also is there an easy way to get back or rebuild the XML into a string from a Document object? I would really like to do that right after I do the parse method and see if the XML data that the Document object has is the same as what's in the inputStream (which is "1 &_lt_; 0?").
    Any input you can provide is much appreciated. Thanks,
    Latem

    Hello I am doing some SOAP XML stuff and I am having an issue that hopefully I can get some help with.
    Is XML like this valid to do in a SOAP message?
    <prompt>1 &_lt_; 0? <prompt>It's suppose to represent "1 < 0?"
    * the forum formatter seems to eat up my encoded text and transofrms it into acutal "<" so I am placing underscores "_" everywhere to keep the text. so above is actually without underscores
    From what I've read I think it is. I have text like this transported as part of the overall SOAP message to my client from the server.
    In my code I do:
    // Create an instance of the DocumentBuilderFactory
    DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
    // Get the DocumentBuilder from the factory
    DocumentBuilder builder = documentFactory.newDocumentBuilder();
    Document doc = builder.parse(inputStream);
    ...inputStream is an InputStream (specifically ByteArrayInputStream) containing the XML.
    The issue I am having is that wherever I have an '&' (such as "&_lt_;" or "&_gt_;" or "&" etc...) the parsing seems to get cut off and the rest of the string doesn't seem to get parsed. So the above string "1 &_lt_; 0?" ends up being "1 ".
    Also is there an easy way to get back or rebuild the XML into a string from a Document object? I would really like to do that right after I do the parse method and see if the XML data that the Document object has is the same as what's in the inputStream (which is "1 &_lt_; 0?").
    Any input you can provide is much appreciated. Thanks,
    Latem

  • XML C++ Parser in Solaris 2.6 could not parse with base64

    I am using XML C++ Parser (version 2.0.4) in Solaris 2.6
    I am using the following definition in dtd file to process binary data.
    <!ELEMENT Agent (base64)>
    I have two problem from xmlparse() function.
    1. This declaration always produces a warning:
    LPX-00103: warning: document structure does not match DTD.
    2. This causes the parser to fail completely if the corresponding data is empty. This field needs to be optional.
    Any ideas how to handle this situation.
    Thanks in advance
    Vijay Kumar

    You can either turn off validation or read section 3.2 of http://www.w3.org/TR/1998/REC-xml-19980210 on how to write a proper DTD.
    null

  • XML Document not Valid

    Hi Techies,
    I m making a xml document and that is validated on xml schema. But it is giving error that document is not valid because it is not deg\fining DOCTYPE element. Is it necessary to define it

    It is not nesessary, but you have probably made your parser validating. In Java validating parsers use DTD to validate, and while schema validation is possibly those parsers are non-validating.

  • Does income xml request get validated against wsdl?

    Hi, there:
    I'm using document/literal web service. My question is: Does income xml request get validated automatically against wsdl complex type xml schema? If not is there any configuration way we can set to validate income xml request automatically?
    I searched posts in this forum, it seems the same question was asked long long time ago already, but no answer. So, I want to check that question again.
    I simply tested my web service by using soapUI, it seems no xml validation implemented on any request at all.
    Highly appreciated if any help or comment, thanks a lot in advance.
    David

    Thank you very much jwenting for the reply. We are using jbossWs.
    Yes, I definately agree that it's very cool that wsdl is generated on the fly, and all xml message is parsed to java bean automatically by jaxb. However, my 2 cents is:
    1. How can I generate other xml schema restrictions in wsdl on the fly except "enum" (ex. pattern, minInclusive, maxInclusive etc.)? Currently, it seems only @XmlEnum can generate "enum" restriction in wsdl automatically, no other restrictions could be generated automatically in wsdl.
    2. Even if I have those restrictions defined manually in wsdl, as it doesn't implement validation on income xml request, and I should do the validation inside my webservice logic, which means that even if I have those xml schema restrictions defined in wsdl, they are useless.
    That's the reason I want to check if anyway the validation can be implemented automatically on income xml request.
    Again, highly appreciated any further helps or comments. Thanks a lot in advance.
    David

  • How to use the validation.xml in struts validation?

    Can any one please help me, how to use the validation.xml in struts validation? possible please give me simple example.
    Edited by: SathishkumarAyyavoo on Jan 31, 2009 12:03 PM

    These 2 are the good articles for the beginners to do validation things in Struts. you can follow any one of them.
    1. [http://viralpatel.net/blogs/2009/01/struts-validation-framework-tutorial-example-validator-struts-validation-form-validation.html]
    2. [http://www.vaannila.com/struts/struts-example/struts-custom-validation-example-1.html]
    All the best.

  • 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;

  • DPM 2012 R2 install fail - Reporting services "definition contains XML that is not well-formed or the XML is not valid"

    Hi Everyone,
    I've been battling with this for a while and I'm getting nowhere. I'm attempting to install DPM 2012R2 onto a fresh VM with a local SQL installation. The setup is as follows:
    Server OS: 2008R2 SP1
    SQL: 2008 R2 standard with SP3(tried SP2 before this)
    Collation: SQL_Latin1_General_CP1_CI_AS
    Reporting services installed: Yes(ticked do not configure during the installation)
    Enabled reporting servics on port 80 with the default URL
    DPM Installation does not throw any errors during the preinstall stage(The server passes all the checks)
    Basically, when Installing. I get this error(extract):
     at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.DeployFileInServer(Boolean recreate, ReportDBInfo rptInfo)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.DeployReports(String sourceFolderPath, Boolean recreate, Boolean calledFromSetup)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.InstallReports(Boolean calledFromSetup, String sourceFolderPath, String sqlServerName, String sqlInstanceName, String dbConnectionString)
       --- End of inner exception stack trace ---
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.ReportingConfiguration.DeployReports(Boolean isRemoteReporting, String sqlMachineName, String sqlInstanceName, String rsMachineName, String rsInstanceName, String installerPath)
    [10/12/2014 2:35:25 p.m.] * Exception :  => Report configuration failed.Verify that SQL Server Reporting Services is installed properly and that it is running.Microsoft.Internal.EnterpriseStorage.Dls.Setup.Exceptions.BackEndErrorException: exception
    ---> Microsoft.Internal.EnterpriseStorage.Dls.Setup.Exceptions.ReportDeploymentException: exception ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.ReportingException:
    exception ---> System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: The report definition is not valid or supported by this version of Reporting Services. This could be the result of publishing a report definition of
    a later version of Reporting Services, or that the report definition contains XML that is not well-formed or the XML is not valid based on the Report Definition schema. Details: Root element is missing.
       at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings)
       at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Reporting.ReportingService2005.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.CreateReport(String pathOfReport, ReportDBInfo rptInfo)
       --- End of inner exception stack trace ---
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.CreateReport(String pathOfReport, ReportDBInfo rptInfo)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.DeployFileInServer(Boolean recreate, ReportDBInfo rptInfo)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.DeployReports(String sourceFolderPath, Boolean recreate, Boolean calledFromSetup)
       at Microsoft.Internal.EnterpriseStorage.Dls.UI.Library.Reporting.Reporter.InstallReports(Boolean calledFromSetup, String sourceFolderPath, String sqlServerName, String sqlInstanceName, String dbConnectionString)
       --- End of inner exception stack trace ---
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.ReportingConfiguration.DeployReports(Boolean isRemoteReporting, String sqlMachineName, String sqlInstanceName, String rsMachineName, String rsInstanceName, String installerPath)
       --- End of inner exception stack trace ---
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.ReportingConfiguration.DeployReports(Boolean isRemoteReporting, String sqlMachineName, String sqlInstanceName, String rsMachineName, String rsInstanceName, String installerPath)
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.BackEnd.DeployReports(String reportserverConfigFilePath, Boolean isOemSetup, String sqlMachineName, String sqlInstanceName, Boolean isRemoteReporting, String reportingServerMachineName, String
    reportingInstanceName)
       --- End of inner exception stack trace ---
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.BackEnd.DeployReports(String reportserverConfigFilePath, Boolean isOemSetup, String sqlMachineName, String sqlInstanceName, Boolean isRemoteReporting, String reportingServerMachineName, String
    reportingInstanceName)
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.DpmInstaller.DeployReports(Boolean isRemoteReporting, Boolean isUpgrade)
       at Microsoft.Internal.EnterpriseStorage.Dls.Setup.Wizard.ProgressPage.InstallerThreadEntry()
    *** Mojito error was: ReportDeploymentFailed; 0; None
    [10/12/2014 2:35:25 p.m.] *** Error : Report configuration failed.
    Verify that SQL Server Reporting Services is installed properly and that it is running.
    ID: 812
    [10/12/2014 2:35:25 p.m.] Information : Data Protection Manager installation has failed. All the items that were copied during the installation process have been removed.
    For details, click the Error tab.
    Any ideas?
    I've managed to get it to this stage. Originally I didn't have encryption keys or a listening port(which I fixed).

    Can you try following steps:
    If there are SSL certificates on your computer, by default SQL 2008
    installation configures HTTPS for reporting websites. When DPM tries to
    deploy reports on these websites it may fail if the reporting websites
    are not accessible (might be due to invalid/expired certificates). To
    workaround this, provided you do not require HTTPS for reporting websites do
    the following:
    1. Edit C:\Program Files\Microsoft DPM\SQL\MSRS10.MSDPMV3BETA1EVAL\Reporting
    Services\ReportServer\rsreportserver.config
    2. Set the SecureConnectionLevel to 0 if the current value is 2 (A value to
    2 means secure connection is required)
    3. Connect to SQL reporting service configuration manager and connect to the
    instance MSDPMV3BETA1EVAL
    4. Click on Web Service URL, click advanced and remove SSL identities
    5. Repeat the above for Report Manager URL
    6. Make sure report manager URL and web service URL are accessible with out
    any errors.
    6. Restart report server
    If that doesn't solve the problem, please try following steps:
    1. Open Start-> All programs->SQL server 2008->Configuration Tools->Report
    Server Configuration Manager
    2. Connect to the instance which the DPM is using to install.
    3. Browse Report Manager URL and web service url
    4. If report manager URL or web service url throws any error say 500 or 404
    fix the error. (Try also replacing machine name with localhost in url)
    5. Otherwise delete DPMReports folder (if present) using below instructions
    6. Restart reporting services
    7. Try DPM setup again.
    Deleting DPM reports:
    1. Open report manager URL in IE
    2. Click show details on right hand side
    3. Put a tick against DPMReports folder
    4. Click Delete button.
    Regards, Trinadh [MSFT] This posting is provided AS IS with no warranties, and confers no rights. If you found the reply helpful, please MARK IT AS ANSWER. Looking for source of information for DPM? http://blogs.technet.com/b/dpm/ http://technet.microsoft.com/en-in/library/hh758173.aspx

  • Using XDKs XML Schema Parser

    I want to parse an XML schema(XSD file) and extract the types from it, ComplexType etc. Does anyone know to even begin this. Ive managed to parse and any XML file sucessfully returning all element types,names and values using the DOM parser but cant seem to find suitable methods in the oracle.xml.parser.schema library. I have started along these lines
    XSDBuilder bob =new XSDBuilder();
    XMLSchema sch = (XMLSchema)bob.build(url);
    where URL is string referencing the xsd file. But after that all I can get is the targetnamespace using
    String display = sch.getSchemaTargetNS();
    Any help greatly appreciated.

    Srinivas,
    Thanks for the reply. But that is not my requirement.Suppose I have a schema representing the following xml
    <Student>
    <Name>ABC</Name>
    <Class>XYZ</Class>
    <Course>PQR</Course>
    </Student>
    When I parse the XML Schema representing the above XML, it should give me a Java object that represents this XML structure. (Similar to Document object that is obtained when we an XML is parsed)
    Hope this is more clear.

  • File Adapte picking up XML if XSD valid without verifing the XSD in adapter

    hi',
    I am facing one issue
    I have a sample XML file which I want to read through BPEL process
    for this I have configured the file adapter with the schema and reading the file adapter with the receive activity
    next I have created one XSD file (which file adapter referes to) and one XML file,
    File adapter reads it after the XML file gets validated with the XSD which is kept in a location *'/test/xsd/emp.xsd'*,
    now the issue is that the file adapter is picking up and initiating the process without verifying the XSD mentioned in the adapter
    it is only checking the XML file with the XSD mentioned in the XML,
    for example if I have a xml file which is refering to some other schema it also gets read by file adapter without worring about what schema is mentioned in file adapter
    please advice me is this the way File adapter works in Oracle BPEL or I am doing some thing wrong
    I am using SOA suite 10.1.3.3.0 which is deployed in UNIX enviornment.
    thanks
    Yatan

    thanks Ketan ,
    as you suggested, after adding validateXML to true, the XML is getting validated to the XSD in the adapter,
    the process is getting invoked and the receive activity is throwing error of 'Invalid XML', this is perfect as I expected
    however now the issue is, the file which is invalid in terms of XSD present in the file adapter is still being archived to 'success dir' i.e. 'LogicalArchiveDirectory', ideally it should have moved to fail directory,
    but if the XML file is not complete or having some error in terms of the XSD it is refering to 'target namespace' and 'target location'
    then it will move to the fail directory and the receive activity is also showing the error,
    see this is how I have configured my bpel.xml file for the file adapter.
    <activationAgents>
    <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="Read_Tph_ProdTrans_File">
    <property name=*"prod_trans_success_file" type="LogicalArchiveDirectory"*>/aaa/bb/ccc/wis/tph/bpl_inbound/adjust/success</property>
    <property name=*"prod_trans_incoming_file" type="LogicalDirectory"*>/aaa/bb/ccc/wis/tph/bpl_inbound/adjust/new</property>
    <property name="portType">Read_ptt</property>
    <property name="rejectedMessageHandlers">file:///aaa/bb/ccc/wis/tph/bpl_inbound/adjust/fail</property>
    </activationAgent>
    please advice how to bring this adapter to proper behaviour.
    thanks
    Yatan

Maybe you are looking for

  • Error while installing itunes

    hi friends, Im getting an error while installing itunes in my laptop.its using windows vista.i even tried in my friends laptop which is Win XP but i ended up with the same error the error is as follows: VB script is not installed or has been disabled

  • Windows 8 .1 black screen after login with cursor

    after login in pc i get a black screen and a cursor i can do nothing please help me i updated windows 8 to windows 8.1.

  • How to transport deletion of a SAP Query

    Hi I have a SAP query which I deleted in the development system through SQ01.    How do I transport this deletion to production ?   Is this possible, or should we be deleting it directly in production system ? Many thanks, Sanker

  • Pages re-numbers paragraphs in a document!

    Hi all -- thanks in advance for any insight you may have. I received an email on my iPad with a Word attachment. I opened the attached in Mail, and when going through the document with someone on the phone, we realized that the paragraphs were not nu

  • Link authorization object to transaction code

    Hi to all how to link authorization object to transaction code? i think we can do by using SU24, i am not getting how to do ? can any one help me on this Immediately Regards raadha