XML Library - Parser not validating

Hi there,
for quiet some time I am waiting that the parser of the ABAP XML library will be able to validate against an XML schema.
The documentation still (for years now) says
'...As of today, the parser is a non-validating parser, even though validation is planned for the next release of the iXML library...'
Has anyone out there an idea if this badly missing feature will ever be enabled?
Doesn't anyone else but me miss this feature in XML processing?
Is there any feasible workaround someone knows of?
regards,
anton

Hi Anton,
Refer this link which tells about 'Simple Transformations'
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/e3/7d4719ca581441b6841f1054ff1326/content.htm">Simple Transformations</a>
BTW Refer this thread
XML schema
Regards,
Raj

Similar Messages

  • ITunes Library.itl not valid music library file

    "iTunes Library.itl not valid music library file" I get this error almost everytime I restart my computer. When itunes makes the new ".itl" file, not all of my music is listed in the library. I have read through a large amount of the forum posts on this topic and have not found a solution that works for me yet.
    How can I stop iTunes from doing this everytime I restart my computer?
    Is there a way to "repair" the damaged ".itl" so that I do not have to keep remaking my playlists?
    iTunes 6.0.1.3   Windows XP  

    It seems like the ITL file is not being properly written after iTunes closes. Then when you re-open iTunes, it cannot load the ITL file and creates a new one. Forcing you to recreate your Library manually, again and again.
    Several things to check:
    -Double check to see that the ITL file or the folder it resides in is not read-only.
    -Using Windows Explorer, right-click on the file (or folder) name, go to Properties.
    -If it is, then close iTunes, change it, and reopen iTunes.
    See this thread to reset the iTunes preferences: http://discussions.apple.com/message.jspa?messageID=1216090#1216090
    And see this post to use TweakUI to check the location and validity of your My Music 'Special Folder': http://discussions.apple.com/click.jspa?searchID=487067&messageID=1197027
    Once the main cause of the inability to save the ITL file is corrected, you'll need to recreate your Library one last time to finally save it. No way to resurrect the original one, unless you had backup copies of the ITL file.

  • ITunes Library is not valid??  Someone please help!

    My computer froze up last night and I had to restart it. Just now I tried to open up iTunes since it froze last night and now I got a popup that says my iTunes Library is not valid and that it needs to create a new one that says "iTunes Library (Damaged)".
    When iTunes opened up none of my songs were there and neither were any of my playlists. It's as if I am using iTunes again for the first time and I have no songs or anything.
    How do I get those songs and my playlists back exactly the way they were before? If anyone can help me out here it would be greatly appreciated. Thanks.
    Dual 1.8GHz G5   Mac OS X (10.4.1)  

    Did you try a permissions repair using your old library file? That may solve the problem without a lot of trouble.
    You can re-import all of your song files back into iTunes, but you will lose all your settings and playlists. I would do that only as a last resort.
    You can find out which files are different between the backup and main Music folders. If you have the OS X Developer Tools installed you can use the "File Merge" utility to compare the two folders. It can be found in Developer/Applications/Utilities. It can tell you what files are identical, unique to one folder or the other, and files that have been added or deleted to either. Depending on how big the folders are it can take a very long time to run the comparison. You might want to run it when you are not using the computer, like overnight.
    After you find out which files are different in the newer Music Folder you can then just re-import them only without affecting things since the last backup.
    Also, iTunes will use whatever library file was last used until you change it by holding down the option key add selecting a new one when you start iTunes. So any files that are added will be added to the current library file in use.
    Hope this helps. Let me know.

  • ITunes Library File Not Valid!  What the Heck?

    I have 11,500 songs in my music library and am running iTunes 7.0.2. My iTunes Library file from time-to-time becomes corrupted, on probably at least a weekly basis. I have no idea what's causing this.
    Here's the typical scenario ... iTunes works fine, I quit it, and the next time I open it it shows the dialogue box that says, "Importing 'iTunes Libray.xml'..." Then it organizes the files and a dialogue box indicates "iTunes Library" does not appear to be a valid iTunes Library file ... Renamed damaged file ..."
    When it's finally all done, I get my music library back minus all my playlists as well as EQ and volume settings.
    This happened today and my most recent backup (done earlier in the day) was also corrupted. This is why I've learned to keep a set of four recent backups just to insure I have a reliable and useable one not more than a couple of days old. But it seems a very unnecessary hassle and I'm always losing adjustments made to my database!
    Anyway ... would anyone among our distinquished and experienced iTunes geeks out there have a clue as to why this is happening OR any suggestions as to what I might do to help alleviate the problem?
    Is anyone aware of a program that will search for corrupted files within your music library? I suspect this might be part of the problem.
    Thanking you in advance for your help!
    PowerBook G4 17" | 80GB Video iPod   Mac OS X (10.4.5)  

    It seems like the ITL file is not being properly written after iTunes closes. Then when you re-open iTunes, it cannot load the ITL file and creates a new one. Forcing you to recreate your Library manually, again and again.
    Several things to check:
    -Double check to see that the ITL file or the folder it resides in is not read-only.
    -Using Windows Explorer, right-click on the file (or folder) name, go to Properties.
    -If it is, then close iTunes, change it, and reopen iTunes.
    See this thread to reset the iTunes preferences: http://discussions.apple.com/message.jspa?messageID=1216090#1216090
    And see this post to use TweakUI to check the location and validity of your My Music 'Special Folder': http://discussions.apple.com/click.jspa?searchID=487067&messageID=1197027
    Once the main cause of the inability to save the ITL file is corrected, you'll need to recreate your Library one last time to finally save it. No way to resurrect the original one, unless you had backup copies of the ITL file.

  • Uniqueness for xml element is not validated with the xsd:unique

    Hi
    I am using <xsd:unique> to specify uniqueness for certain elements in the schema. But when i create the xml for the schema,it allows me to create elements with duplicate values for which the uniqueness is defined and also it is allowed to parse the xml correctly.I am using jaxb2.0 and jaxp2.0 to bind the xml and parse it. The schema is described below :
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:include schemaLocation="ArtifactDetails.xsd" />
         <xsd:element name="EKMArtifacts">
              <xsd:complexType>
                   <xsd:sequence>
                        <xsd:element name="Artifact" minOccurs="0" maxOccurs="unbounded">
                             <xsd:complexType>
                                  <xsd:sequence>
                                       <xsd:element name="ArtifactType" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="ArtifactName" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Status" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="VersionString" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Artifactdesc" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Functionaldesc" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Department" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Location" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Rated" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Category" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Createdby" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="OSPlatform" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="APPPlatform" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Country" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="State" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element name="Vendor" type="xsd:string" nillable="false" minOccurs="1" maxOccurs="1" />
                                       <xsd:element ref="ArtifactDetails" minOccurs="0" maxOccurs="1" />
                                  </xsd:sequence>
                             </xsd:complexType>
                        </xsd:element>
                   </xsd:sequence>
              </xsd:complexType>
              <xsd:unique name="ArtifactNameUnique">
                   <xsd:selector xpath="Artifact" />
                   <xsd:field xpath="ArtifactName" />
              </xsd:unique>
         </xsd:element>
    </xsd:schema>
    Can anyone help me out
    Thanks in advance

    Well there's nothing wrong with your schema (I copyied it into XMLSpy and wasn't able to create two artifacts with the same name). My guess is that JAXB still does not support xsd:unqiue
    http://www.onjava.com/pub/a/onjava/2004/12/15/jaxb.html

  • Why are all the events in the XML SAX parser not activated?

    Hi everyone,
    I have written a mini server that parses XML files into SQL queries.
    Below is a segment of my code;
              try          {                                                       
                   Class.forName( JDBC_DRIVER );
                   myConnection = DriverManager.getConnection( DATABASE_URL, "username", "password");                                                  
                   EventXMLParser myEXP = new EventXMLParser(directory, myConnection);
                   File[] xmlFiles = directory.listFiles();
                   for (File xmlFile : xmlFiles)               {     
                        myEXP.XMLtoDB(xmlFile);
                        outWriter.println("File:" + xmlFile.getName() + " DONE");
              } catch (SQLException e)     {
                   System.err.println("SQLException for establishing connection");
                   e.printStackTrace();
              } catch (ClassNotFoundException e)     {
                   System.err.println("CLASS NOT FOUND EXCEPTION HERE");
                   e.printStackTrace();
              } catch (Exception e)     {
                   System.err.println(e);
                   e.printStackTrace();
              finally {
                   outWriter.println("PARSING COMPLETED");
                   outWriter.close();
         }Where the constructor EventXMLParser constructs the following:
         public EventXMLParser(File path, Connection connection)     {
              super();
              try     {
                   this.XMLpath = path;
                   this.db_connection = connection;
                   this.xr = XMLReaderFactory.createXMLReader();
                   this.XMLSAXhandler  = new DefaultHandler(); //create a new own handler
                   this.xr.setContentHandler(XMLSAXhandler);
                   this.xr.setErrorHandler(XMLSAXhandler);
                   //System.out.println("DEBUG: db_connection is " + db_connection.toString());
              catch (Exception e)     {
                   System.out.println("Constructor Error!");
                   e.printStackTrace();
         }Below are all my helper methods within EventXMLParser.java
         public void XMLtoDB(String XMLpath) throws Exception  {
              try     {
                   //Input
                   System.out.println("XMLpath is : " + XMLpath);
                   /*FileReader r = new FileReader(XMLpath); debug
                   InputSource in = new InputSource(r);
                   xr.parse(in);
                   xr.parse(XMLpath);
                   /* Note that while parsing, the end of each event, </event>
                    * will trigger sendSQL to execute the query on the database
              catch (Exception e)     {
                   throw new Exception("Error with XMLtoDB!! Exception: " + e);
         public void sendSQL(Event event, Connection sql_connection) throws SQLException     {
                   //JDBC part
                   try     {
                        System.err.println("DEBUG sendSQL");
                        Statement sql_statement = sql_connection.createStatement();
                        ResultSet resultSet = sql_statement.executeQuery( event.toSQL() );
                   catch (SQLException e)     {
                        e.printStackTrace();
         /* Parsing XML
          * From here onwards it's all designed for the SAX Parsing with different event calling methods
         public void startDocument()     {
              System.err.println("Start Document");
         public void endDocument()     {
              System.err.println("End Document");
         public void startElement(String uri, String name, String qName, Attributes atts)     {
              CurrentElement= name;
              System.out.println("This is parsing");
         public void characters(char ch[], int start, int length)     {
              SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
              StringBuffer sb = new StringBuffer();
              for (int i = start; i < start + length; i++)     
                   sb.append(ch);
              String content = sb.toString();
              if (CurrentElement.equals("eid"))
                   temp.setEventID( (Integer.valueOf(content)).intValue() ) ;
              else if (CurrentElement.equals("sd"))
                   temp.setShort_description(content);
              else if (CurrentElement.equals("ld"))
                   temp.setLong_description(content);
              else if ( (CurrentElement.equals("dt")))
                   temp.setDate_Time( formatter.parse(content, new ParsePosition(0)) );
              else if (CurrentElement.equals("repeat"))
                   temp.setRepeat_pattern( (Integer.valueOf(content)).intValue() );
              else if (CurrentElement.equals("valid"))
                   temp.setValid_period(content);
              else if (CurrentElement.equals("status"))     {
                   temp.setStatus( (Integer.valueOf(content)).intValue() );
              else {}
         public void endElement(String uri, String name, String qName)     {
              System.err.println("DEBUG" + temp.toString()); /*debug*/
              if (name.equals("event"))     {
                   try     {
                        /*debug*/ temp.setUserID(1);
                        /*debug*/ System.err.println("DEBUG: " + temp.toString());
                        sendSQL(temp, db_connection);
                        //temp = new Event();
                   catch (SQLException e)     {
                        System.err.println(e);
                   }//end catch
              }//end try
    Where event is a public class Event     {
         //fields
         private int userID = 1; // = 1 only applies for testing
         private int eventID;
         private String short_description;
         private String long_description;
         private Date date_time = null;
         private int repeat_pattern;
         private String valid_period;
         private int status;     //1 for new, 0 for modification and -1 for delete
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         //Constructors
         //every event requires the following: userID eventID and short_Description
         public Event(int uID, int eID, String shortDescrp)     {
              setUserID(uID);
              setEventID(eID);
              setShort_description(shortDescrp);
         public Event(int uid, int eid, String sd,
                                  String ld, Date d_t, int r_p, String v_p, int s)     {
              setUserID(uid);
              setEventID(eid);
              setShort_description(sd);
              setLong_description(ld);
              setDate_Time(d_t);
              setRepeat_pattern(r_p);
              setValid_period(v_p);
              setStatus(s);
         //set
         public void setUserID (int x)                         { this.userID = x ;}
         public void setEventID (int x)                         { this.eventID = x ;}
         public void setShort_description (String x)          { this.short_description = x ;}
         public void setLong_description (String x)          { this.long_description = x ;}
         public void setDate_Time(Date x)                    { this.date_time = x ;}
         public void setRepeat_pattern (int x)               { this.repeat_pattern = x ;}
         public void setValid_period (String x)               { this.valid_period = x ;}
         public void setStatus (int x)                         { this.status = x; }
         //get
         public int           getUserID()                              { return this.userID;}
         public int           getEventID()                         { return this.eventID;}
         public String      getShort_description()               { return this.short_description;}
         public String      getLong_description()               { return this.long_description;}
         public Date        getDate_Time()                         { return this.date_time;}
         public int         getRepeat_pattern()                    { return this.repeat_pattern;}
         public String      getValid_period()                    { return this.valid_period;}
         public int           getStatus()                              { return this.status; }
         //Event to SQL statements;
         public String toSQL()     {
              StringBuffer sb = new StringBuffer();
              ///if ( status == 1)     {
                   sb.append( "INSERT INTO events SET" );
                   sb.append( " userID = " + userID + ", ");
                   sb.append( "eventID = " + eventID + ", " );
                   sb.append( "short_description = " + "\'" + short_description + "\'" + ", "); //String
                   sb.append( "long_description = " + "\'" + long_description + "\'"  + ", "); //String
                   sb.append( "date_time = " + "\'" + formatter.format(date_time) + "\'" + ", ");
                   sb.append( "repeat_pattern = " + repeat_pattern + ", " );
                   sb.append( "valid_period = " + "\'" + valid_period + "\'" ); //String
                   sb.append( ";");
              //} else if ( status == 2)      {
              System.err.println(sb.toString());
              return sb.toString();
    }     My question is: I have taken my SQL query generated by toSQL() method in events and it worked.
    Here is the funny thing:
    Everything is correct syntax wise: No complaints what soever
    The mysql part works: Tested separately.
    So I tend to think that the problem lies within the SAX parser. I have written SAX2 parsers on this machine before and they have worked too. I tried inserting println statements all over startElement endElement etc etc only to find out that the SAX parser did not call any of the methods that I overided!! Why is that so?
    Can you guys spot where my SAX parser fails?

    I see.
    I try to correct this problem by removing super();
    so right now my code looks like this:
         static Event temp = new Event(0, 0, "null", "null", new Date(), 0, "null", 0);
         static String CurrentElement = null;
         static File XMLpath;
         static Connection db_connection;
         static XMLReader xr;
         static DefaultHandler XMLSAXhandler; 
         //Constructor,      Build the SAX Parser
         public EventXMLParser(File path, Connection connection)     {
              try     {
                   this.XMLpath = path;
                   this.db_connection = connection;
                   this.xr = XMLReaderFactory.createXMLReader();
                   this.XMLSAXhandler  = new DefaultHandler(); //create a new own handler
                   this.xr.setContentHandler(XMLSAXhandler);
                   this.xr.setErrorHandler(XMLSAXhandler);
                   //System.out.println("DEBUG: db_connection is " + db_connection.toString());
              catch (Exception e)     {
                   System.out.println("Constructor Error!");
                   e.printStackTrace();
         }This time, I created a new instance of default handler() which can be referenced by as the objects's XMLSAXhandler. However, that did not solve the problem, why does the problem still persist?
    Right now, there is only one instance of a default handler created. So why does all my parsing event functions still get ignored?

  • Itunes library .itl not valid

    I am using windows xp and I keep getting the following message, "The file itunes library.itl does not appear to be a valid itunes file. Itunes has created a new itunes library and renamed this file "itunes library (Damaged)4.itl.
    I have tried everything, I have imported the file, deleted off all of itunes and reinstalled and I still get this message. I do not have any mp3's in the library and I still get this message each time itunes starts.
    Can anyone help? Thanks in advance.

    It seems like the ITL file is not being properly written after iTunes closes. Then when you re-open iTunes, it cannot load the ITL file and creates a new one. Forcing you to recreate your Library manually, again and again.
    Several things to check:
    -Double check to see that the ITL file or the folder it resides in is not read-only.
    -Using Windows Explorer, right-click on the file (or folder) name, go to Properties.
    -If it is, then close iTunes, change it, and reopen iTunes.
    See this thread to reset the iTunes preferences: http://discussions.apple.com/message.jspa?messageID=1216090#1216090
    And see this post to use TweakUI to check the location and validity of your My Music 'Special Folder': http://discussions.apple.com/click.jspa?searchID=487067&messageID=1197027
    Once the main cause of the inability to save the ITL file is corrected, you'll need to recreate your Library one last time to finally save it. No way to resurrect the original one, unless you had backup copies of the ITL file.

  • Validating xml in pipeline - if not valid drop file in invalid folder

    My goal is to receive an xml file through a customized pipeline so I can validate it.  If it's valid I drop it in 'valid' folder.  Then my orchestration will pick it from that location and do whatever it will do with it.  This works fine.
     But if the xml file is NOT valid I want to drop it in a an 'INVALID' folder and have a different orchestration pick it up and send an email to me.  Is this possible?  In my pipeline I don't have a dissambler, just an XMLValidator with the appropriate
    schema in the document schemas collection.  When I do drop in an 'invalid' xml file according to the schema, the pipeline is suspended.  How can I drop that invalid xml file into a folder?
    I've been learning/working with BizTalk for about 3 months.  I'm trying to keep this simple and avoid doing any custom c# code until I'm more comfortable with BizTalk.
    thank you in advance for your expert advice.
    Jean Stiles

    Hi Jean,
    Your validation pipeline should promote the "MessageType" property of the message (if the orchestration doesn't have any other filters and if the orchestration's receive shape has a message type pointing to specific message). Its seems that when your validation
    component validate any incoming message, after its process it shall promote the message type property of the message. Other wise you would not have any subscriber for the message published. The error "The published message could not be routed because no subscribers
    were found" is due to this issue. i.e your orchestration subscription doesn't match to the message outputted by your custom vaidation component.
    Not sure what is the full functionality of your custom validation component. if its simply validating the message, you can still get this functionality by using XML-Receive pipeline and set the property "Validate Document" to "True" and by specifying the
    "DocumentSpecNames" to the schema which you want to validate the incoming message against.
    If you're using custom pipeline to do standard validation, then follow like this:
    Receive Port (with Enable routing for Failed Messages enabled)  Receive Location with XML-Receive pipeline  (Validate Document" to "True" and by specifying the "DocumentSpecNames" to the schema which you want to validate )
    Bind the Receive Port to Orchestration - Do your process as normal
    Create a send port with above filter for ErrorReport and configure this send port to send the invalid message to your invalid folder.
    If you're using custom pipeline to something more than standard validation of XML-Receive pipeline , then follow like this:
    Receive Port (with Enable routing for Failed Messages enabled)  Receive Location with Your custom validation pipeline component.
    Ensure your custom pipeline component promotes the message type property as
    string systemPropertyNS = @”http://schemas.microsoft.com/BizTalk/2003/system-properties”;
    outboundMsg.Context.Promote(“MessageType”, systemPropertyNS, “http://NameSpace#RootNode”);
    replace the outboundMsg to the outbound message you output in your custom validation component. And message type to relevant value as yours. Or by some means ensure your custom pipeline output the message with matces to subcription expected by your Orchestration.
    Bind the Receive Port to Orchestration - Do your process as normal
    Create a send port with above filter for ErrorReport and configure this send port to send the invalid message to your invalid folder.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • 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 Parser Message: Element series is not valid for the content model

    Hello,
    I work with FrameMaker 8 and DITA.
    I change the element prodinfo in the topic.edd from:
    General rule: (prodname), (vrmlist), (brand | series | platform | prognum | featnum | component)*
    to:
    General rule: (brand | series | platform | component)*
    When I import the element definition to the template everything is okay.
    When I insert the elements metadata, prodinfo, brand, series, platform and component into a topic I get the XML Parser Message that the element brand is not valid for the content model (prodname,vrmlist, ((brand|series|platform|prognum|featnum|component))*).
    When I delete the element brand in the topic I get the XML Parser Message that the element series is not valid for the content model (prodname,vrmlist, ((brand|series|platform|prognum|featnum|component))*).
    I change the element prodinfo in the topic.edd to:
    General rule: (brand)?, (series)?, (platform)?, (component)?
    ...and get the same Parser Message.
    I do not understand that. Is not it allowed to change the EDD this way without changing the DTD?
    With kind regards
    Nina

    Hi Nina...<br /><br />In general, the EDD and DTD need to sync up. You can remove elements from an EDD element definition's general rule, as long as the resulting elements are still valid to the DTD. But if changing a general rule creates an invalid structure, you'll need to also change the DTD to allow the revised structure.<br /><br />With DITA, it is common to remove inline elements from block-level elements. For example, you might want to remove the <msgblock>, <msgnum>, and <msgph> elements from the general rule of the <p> element .. this can be done easily in the EDD and the resulting structure remains valid with the DTD.<br /><br />However, what you're doing leaves the <brand> element as a child of <prodinfo> .. which is invalid. You'll get these errors when saving a file, since this is when the file is validated against the DTD.<br /><br />I do not recommend modifying the structure in such a way that requires you to modify the DTD. If you really need to do this, then you should consider making a specialization to support your revised model.<br /><br />I hope this helps.<br /><br />Cheers and Happy New Year!<br /><br />...scott

  • XML for Analysis parser: The 'Domain\User' value of the 'EffectiveUserName' XML for Analysis property is not valid.

    hi 
    i have sharepoint 2013 enterprise over sql server 2012 standard, and i want to create some reports trhought excel services and performance point using EffectiveUserName feature, but right actually my environment is not working, when a configure an excel
    to read a SSAS cube from my local machine the rol is ok, but when i published the excel and try to update from Internet Explorer this error is presenting
    XML for Analysis parser: The Domain\User' value of the 'EffectiveUserName' XML for Analysis property is not valid.
    Anybody can helpme is urgent find out for some solution
    thanks a lot

    Turns out that you need the SP Farm service account to be an admin on the SSAS server as well.  That fixed the problem for us.
    MS: Please update your documentation :)

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

  • Error in parsing: SAX2 driver class com.sun.xml.parser not found

    Hi I have this exception
    Error in parsing: SAX2 driver class com.sun.xml.parser not found
    when I try to run the examples from the book xml and java
    I have added the following jar files to the class path that i have download form java.sun.com
    xml.jar
    xalan.jar
    jaxp.jar
    crimson.jar
    Please can anyone tell me what is missing or wrong..the code must be right since written by oreilly... please have u any ideA
    XMLReaderFactory.createXMLReader(
    // "org.apache.xerces.parsers.SAXParser");
                        "com.sun.xml.parser");//
    I HAVE ONLY CHANGED THIS LINE FROM THE apache parser..to com.sun.xml.parser
    THIS IS THE ALL CODE
    import java.io.IOException;
    import org.xml.sax.Attributes;
    import org.xml.sax.ContentHandler;
    import org.xml.sax.ErrorHandler;
    import org.xml.sax.Locator;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.xml.sax.XMLReader;
    import org.xml.sax.helpers.XMLReaderFactory;
    import org.xml.sax.*;
    * <b><code>SAXParserDemo</code></b> will take an XML file and parse it using SAX,
    * displaying the callbacks in the parsing lifecycle.
    * @author Brett McLaughlin
    * @version 1.0
    public class SAXParserDemo {
    * <p>
    * This parses the file, using registered SAX handlers, and output
    * the events in the parsing process cycle.
    * </p>
    * @param uri <code>String</code> URI of file to parse.
    public void performDemo(String uri) {
    System.out.println("Parsing XML File: " + uri + "\n\n");
    // Get instances of our handlers
    ContentHandler contentHandler = new MyContentHandler();
    ErrorHandler errorHandler = new MyErrorHandler();
    try {
    // Instantiate a parser
    XMLReader parser =
    XMLReaderFactory.createXMLReader(
    // "org.apache.xerces.parsers.SAXParser");
                        "com.sun.xml.parser");// I HAVE ONLY CHANGED THIS LINE FROM THE apache parser..
    // Register the content handler
    parser.setContentHandler(contentHandler);
    // Register the error handler
    parser.setErrorHandler(errorHandler);
    // Parse the document
    parser.parse(uri);
    } catch (IOException e) {
    System.out.println("Error reading URI: " + e.getMessage());
    } catch (SAXException e) {
    System.out.println("Error in parsing: " + e.getMessage());
    * <p>
    * This provides a command line entry point for this demo.
    * </p>
    public static void main(String[] args) {
    // if (args.length != 1) {
    // System.out.println("Usage: java SAXParserDemo [XML URI]");
    // System.exit(0);
    //String uri = args[0];
    SAXParserDemo parserDemo = new SAXParserDemo();
    parserDemo.performDemo("content.xml");
    * <b><code>MyContentHandler</code></b> implements the SAX
    * <code>ContentHandler</code> interface and defines callback
    * behavior for the SAX callbacks associated with an XML
    * document's content.
    class MyContentHandler implements ContentHandler {
    /** Hold onto the locator for location information */
    private Locator locator;
    * <p>
    * Provide reference to <code>Locator</code> which provides
    * information about where in a document callbacks occur.
    * </p>
    * @param locator <code>Locator</code> object tied to callback
    * process
    public void setDocumentLocator(Locator locator) {
    System.out.println(" * setDocumentLocator() called");
    // We save this for later use if desired.
    this.locator = locator;
    * <p>
    * This indicates the start of a Document parse - this precedes
    * all callbacks in all SAX Handlers with the sole exception
    * of <code>{@link #setDocumentLocator}</code>.
    * </p>
    * @throws <code>SAXException</code> when things go wrong
    public void startDocument() throws SAXException {
    System.out.println("Parsing begins...");
    * <p>
    * This indicates the end of a Document parse - this occurs after
    * all callbacks in all SAX Handlers.</code>.
    * </p>
    * @throws <code>SAXException</code> when things go wrong
    public void endDocument() throws SAXException {
    System.out.println("...Parsing ends.");
    * <p>
    * This will indicate that a processing instruction (other than
    * the XML declaration) has been encountered.
    * </p>
    * @param target <code>String</code> target of PI
    * @param data <code>String</code containing all data sent to the PI.
    * This typically looks like one or more attribute value
    * pairs.
    * @throws <code>SAXException</code> when things go wrong
    public void processingInstruction(String target, String data)
    throws SAXException {
    System.out.println("PI: Target:" + target + " and Data:" + data);
    * <p>
    * This will indicate the beginning of an XML Namespace prefix
    * mapping. Although this typically occur within the root element
    * of an XML document, it can occur at any point within the
    * document. Note that a prefix mapping on an element triggers
    * this callback <i>before</i> the callback for the actual element
    * itself (<code>{@link #startElement}</code>) occurs.
    * </p>
    * @param prefix <code>String</code> prefix used for the namespace
    * being reported
    * @param uri <code>String</code> URI for the namespace
    * being reported
    * @throws <code>SAXException</code> when things go wrong
    public void startPrefixMapping(String prefix, String uri) {
    System.out.println("Mapping starts for prefix " + prefix +
    " mapped to URI " + uri);
    * <p>
    * This indicates the end of a prefix mapping, when the namespace
    * reported in a <code>{@link #startPrefixMapping}</code> callback
    * is no longer available.
    * </p>
    * @param prefix <code>String</code> of namespace being reported
    * @throws <code>SAXException</code> when things go wrong
    public void endPrefixMapping(String prefix) {
    System.out.println("Mapping ends for prefix " + prefix);
    * <p>
    * This reports the occurrence of an actual element. It will include
    * the element's attributes, with the exception of XML vocabulary
    * specific attributes, such as
    * <code>xmlns:[namespace prefix]</code> and
    * <code>xsi:schemaLocation</code>.
    * </p>
    * @param namespaceURI <code>String</code> namespace URI this element
    * is associated with, or an empty
    * <code>String</code>
    * @param localName <code>String</code> name of element (with no
    * namespace prefix, if one is present)
    * @param rawName <code>String</code> XML 1.0 version of element name:
    * [namespace prefix]:[localName]
    * @param atts <code>Attributes</code> list for this element
    * @throws <code>SAXException</code> when things go wrong
    public void startElement(String namespaceURI, String localName,
    String rawName, Attributes atts)
    throws SAXException {
    System.out.print("startElement: " + localName);
    if (!namespaceURI.equals("")) {
    System.out.println(" in namespace " + namespaceURI +
    " (" + rawName + ")");
    } else {
    System.out.println(" has no associated namespace");
    for (int i=0; i<atts.getLength(); i++)
    System.out.println(" Attribute: " + atts.getLocalName(i) +
    "=" + atts.getValue(i));
    * <p>
    * Indicates the end of an element
    * (<code></[element name]></code>) is reached. Note that
    * the parser does not distinguish between empty
    * elements and non-empty elements, so this will occur uniformly.
    * </p>
    * @param namespaceURI <code>String</code> URI of namespace this
    * element is associated with
    * @param localName <code>String</code> name of element without prefix
    * @param rawName <code>String</code> name of element in XML 1.0 form
    * @throws <code>SAXException</code> when things go wrong
    public void endElement(String namespaceURI, String localName,
    String rawName)
    throws SAXException {
    System.out.println("endElement: " + localName + "\n");
    * <p>
    * This will report character data (within an element).
    * </p>
    * @param ch <code>char[]</code> character array with character data
    * @param start <code>int</code> index in array where data starts.
    * @param end <code>int</code> index in array where data ends.
    * @throws <code>SAXException</code> when things go wrong
    public void characters(char[] ch, int start, int end)
    throws SAXException {
    String s = new String(ch, start, end);
    System.out.println("characters: " + s);
    * <p>
    * This will report whitespace that can be ignored in the
    * originating document. This is typically only invoked when
    * validation is ocurring in the parsing process.
    * </p>
    * @param ch <code>char[]</code> character array with character data
    * @param start <code>int</code> index in array where data starts.
    * @param end <code>int</code> index in array where data ends.
    * @throws <code>SAXException</code> when things go wrong
    public void ignorableWhitespace(char[] ch, int start, int end)
    throws SAXException {
    String s = new String(ch, start, end);
    System.out.println("ignorableWhitespace: [" + s + "]");
    * <p>
    * This will report an entity that is skipped by the parser. This
    * should only occur for non-validating parsers, and then is still
    * implementation-dependent behavior.
    * </p>
    * @param name <code>String</code> name of entity being skipped
    * @throws <code>SAXException</code> when things go wrong
    public void skippedEntity(String name) throws SAXException {
    System.out.println("Skipping entity " + name);
    * <b><code>MyErrorHandler</code></b> implements the SAX
    * <code>ErrorHandler</code> interface and defines callback
    * behavior for the SAX callbacks associated with an XML
    * document's errors.
    class MyErrorHandler implements ErrorHandler {
    * <p>
    * This will report a warning that has occurred; this indicates
    * that while no XML rules were "broken", something appears
    * to be incorrect or missing.
    * </p>
    * @param exception <code>SAXParseException</code> that occurred.
    * @throws <code>SAXException</code> when things go wrong
    public void warning(SAXParseException exception)
    throws SAXException {
    System.out.println("**Parsing Warning**\n" +
    " Line: " +
    exception.getLineNumber() + "\n" +
    " URI: " +
    exception.getSystemId() + "\n" +
    " Message: " +
    exception.getMessage());
    throw new SAXException("Warning encountered");
    * <p>
    * This will report an error that has occurred; this indicates
    * that a rule was broken, typically in validation, but that
    * parsing can reasonably continue.
    * </p>
    * @param exception <code>SAXParseException</code> that occurred.
    * @throws <code>SAXException</code> when things go wrong
    public void error(SAXParseException exception)
    throws SAXException {
    System.out.println("**Parsing Error**\n" +
    " Line: " +
    exception.getLineNumber() + "\n" +
    " URI: " +
    exception.getSystemId() + "\n" +
    " Message: " +
    exception.getMessage());
    throw new SAXException("Error encountered");
    * <p>
    * This will report a fatal error that has occurred; this indicates
    * that a rule has been broken that makes continued parsing either
    * impossible or an almost certain waste of time.
    * </p>
    * @param exception <code>SAXParseException</code> that occurred.
    * @throws <code>SAXException</code> when things go wrong
    public void fatalError(SAXParseException exception)
    throws SAXException {
    System.out.println("**Parsing Fatal Error**\n" +
    " Line: " +
    exception.getLineNumber() + "\n" +
    " URI: " +
    exception.getSystemId() + "\n" +
    " Message: " +
    exception.getMessage());
    throw new SAXException("Fatal Error encountered");

    I have seen this error when I'm executing inside one of the (j2ee sun reference implementation) server containers (either web or ejb). I believe its caused by "something" having previously loaded the "sax 1 driver class". In my case, I think the container or server is loading the sax parser from a jar that contains a sax 1 version. If you can, ensure that nothing is loading the sax 1 parser from another jar on your system. Verify that you are loading the sax parser from a jar containing the latest version so that you get the sax 2 compliant parser. Good luck!

  • 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

  • Fatal error XML-0121 in a valid XML file in v2 of SAX parser

    Attachments: "1|type=text/plain|desc=Logging of Fatal error using v2 of SAX parser |file=v2_loggin
    .txt|";"2|type=text/plain|desc=Logging of Fatal error using v2 of java SAX parser |17078|file=v2_l
    gging.txt|"
    Dear XML team,
    I am using the SAX parser version 2.0.2.4. When parsing a valid
    XML of approx. 3,5 Megabytes i get a fatal error XML-0121
    saying 'End tag does not match start tag
    <CORRESPONDENTIENAAM1>...'
    We checked the xml on the well formedness with tools like XML
    Spy and IE5. The XML is valid!
    We did some testing on the XML with the SAXSample class and we
    noticed that the error is related to the use of Entity
    References. When we removed the Entity Reference &apos; the XML
    was parsed correctly.
    We also noticed that if we cut the XML in two smaller parts it
    was also parsed correctly.
    I attached the output of the parser, as well as the output of
    the SAXSample class.
    I hope you can fix this problem!
    With kind regards,
    Rolf van Deursen.
    null

    Update: I have attempted to use xmlparserv2.jar dated 12/23/08 that is packaged with jDeveloper 11g preview, but am still receiving the same message.

Maybe you are looking for