JDOMException: root element required in a well-formed document

Ok, my XML file looks something like this:
<?xml version="1.0" ?>
<this>
<that></that>
</this>
... and my Java code to build a JDOM object model from the XML file (Xerces-parsed) looks somethings like this:
Document theDoc;
SAXBuilder theBuilder;
InputSource = theSource;
theBuilder = new SAXBuilder("org.apache.xerces.parsers.SAXParser");
theDoc = builder.build(theSource);
Now, when I compile and run, I get a JDOMException that looks something like this:
org.jdom.JDOMException: Error on line 1 of document : The root element is required in a well-formed document.
What's up with that?

(1) Thanks for taking the time. I'm not sure how I could make more than one root element. All I know is, in my XML file, the element tag that comes right after the <? xml version="1.0" ?> line has the same name as the very last tag in the file (with a "/" added before the name). There are no other elements in the file with that name, so I figure that makes it (ie. <this></this>) the root element of my document. N'est pas?
(2) I have some more info since I originally posted:
I added the following line:
"System.err.println(e.getCause());"
... to the catch() area that throws the JDOMException - like follows:
try {
theCurrentDocument = builder.build( docFile ); // builder is an object created with <i>builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser");</i>
docType_CurrentDoc = theCurrentDocument.getDocType();
root_CurrentDoc = theCurrentDocument.getRootElement();
catch( org.jdom.JDOMException e ) {
System.err.println(e); // Caused the original JDOMException from my first post
System.err.println(e.getCause()); // Line I added since my first post
The amended code above produced an extra line of output to the console:
"java.security.AccessControlException: access denied (java.io.FilePermission \myfile.xml read)"
Which I take to mean that I have to sign my applet. Is there any way around doing that? Because I don't want to if I don't have to.

Similar Messages

  • The root element is required in a well-formed document.

    While trying to parse the following xml file using jaxp.jar and xerces.jar I am getting the following exception
    org.xml.sax.SAXParseException: The root element is required in a well-formed document.
    at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1196)
    at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:570)
    at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.endOfInput(XMLDocumentScanner.java:790)
    at org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocumentScanner.java:418)
    at org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifications(XMLValidator.java:694)
    at org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultEntityHandler.java:1026)
    at org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityReader.java:168)
    at org.apache.xerces.readers.AbstractCharReader.changeReaders(AbstractCharReader.java:150)
    at org.apache.xerces.readers.AbstractCharReader.lookingAtChar(AbstractCharReader.java:217)
    at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.dispatch(XMLDocumentScanner.java:686)
    at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
    at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
    at XMLConverter.parse(XMLConverter.java:65)
    at XMLConverter.parse(XMLConverter.java:116)
    at XMLConverter.main(XMLConverter.java:282)
    xml file
    <?xml version="1.0"?>
    <CustomerOrder>
    <Customer>
    <FirstName> Bob </FirstName>
    <LastName> Hustead </LastName>
    <CustId> abc.123 </CustId>
    </Customer>
    <OrderItems>
    <OrderItem>
    <Quantity> 1 </Quantity>
    <ProductCode> 48.GH605A </ProductCode>
    <Description> Pet Rock </Description>
    <Price> 19.99 </Price>
    </OrderItem>
    <OrderItem>
    <Quantity> 12 </Quantity>
    <ProductCode> 47.9906Z </ProductCode>
    <Description> Bazooka Bubble Gum </Description>
    <Price> 0.33 </Price>
    </OrderItem>
    <OrderItem>
    <Quantity> 2 </Quantity>
    <ProductCode> 47.7879H </ProductCode>
    <Description> Flourescent Orange Squirt Gun </Description>
    <Price> 2.50 </Price>
    </OrderItem>
    </OrderItems>
    </CustomerOrder>
    Can anybody please help me.
    Thanks in advance

    Hi There,
    I too am experiencing the same problem. I originally began with the problem described in
    http://forum.java.sun.com/thread.jsp?forum=34&thread=138862
    I removed the jaxp.jar and parser.jar from Tomcat's Lib folder and added the xerces.jar. This moved me on to the problem described in this thread.
    Here is my XML file:
    <?xml version="1.0"?>
    <training_seminar>
         <student>
              <id>0001</id>
              <name>Joe Jones</name>
              <email>[email protected]</email>
              <passport level="4 course">yes</passport>
         </student>
         <student>
              <id>0031</id>
              <name>Patrick Thompson</name>
              <email>[email protected]</email>
              <passport>no</passport>
         </student>
    </training_seminar>
    And here is my XSL:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
              version="1.0">
    <xsl:template match="training_seminar">
    <HTML><BODY>
         <TABLE BORDER="1">
         <TR>
              <TH>Student ID</TH>
              <TH>Name</TH>
              <TH>E-Mail</TH>
              <TH>Passport</TH>
         </TR>
         <xsl:for-each select="student">
              <TR>
                   <TD> <xsl:value-of select="id"/></TD>
                   <TD> <xsl:value-of select="name"/> </TD>
                   <TD> <xsl:value-of select="email"/> </TD>
                   <TD> <xsl:value-of select="passport"/> </TD>
              </TR>
         </xsl:for-each>
         </TABLE>
    </BODY></HTML>
    </xsl:template>
    </xsl:stylesheet>
    And I guess while I am at it, my classpath:
    CLASSPATH=e:\java\jdk1.3.1\jre\lib\rt.jar;e:\jakarta-tomcat-3.2.3\lib\servlet.jar;E:\Dev Tools\xalan-j_2_1_0\bin\xerces.jar;E:\Dev Tools\xalan-j_2_1_0\bin\xalan
    .jar;E:\Dev Tools\xalan-j_2_1_0\bin\xsltc.jar;E:\Dev Tools\xalan-j_2_1_0\bin\xml
    .jar;.
    Any ideas is truly appreciated.
    Thanks,
    Gregg

  • OdiInvokeWebService invoke the Async ws error!! not a well-formed document

    Hello, Everybody, I need you help.
    I use the OdiInvokeWebService utility to invoke the Async web service in the ODI Design. the Async service can run successful. but the ODI has the error:The root element is required in a well-formed document. If I use the OdiInvokeWebService to invoke the sync web service. It is ok, not error happens. so i guess that maybe beacause the Async has not the reponse message. but I don't know how to resolve the problem. PLZ help. thanks.
    com.sunopsis.wsinvocation.SnpsWSInvocationException: org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Unknown Source)
    Caused by: org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         ... 8 more
    Caused by: org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
         at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:570)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.endOfInput(XMLDocumentScanner.java:790)
         at org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocumentScanner.java:418)
         at org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifications(XMLValidator.java:712)
         at org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultEntityHandler.java:1031)
         at org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityReader.java:168)
         at org.apache.xerces.readers.UTF8Reader.changeReaders(UTF8Reader.java:182)
         at org.apache.xerces.readers.UTF8Reader.lookingAtChar(UTF8Reader.java:197)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.dispatch(XMLDocumentScanner.java:686)
         at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
         at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         ... 15 more
    Caused by:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXParseException: The root element is required in a well-formed document.
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
         at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:570)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.endOfInput(XMLDocumentScanner.java:790)
         at org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocumentScanner.java:418)
         at org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifications(XMLValidator.java:712)
         at org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultEntityHandler.java:1031)
         at org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityReader.java:168)
         at org.apache.xerces.readers.UTF8Reader.changeReaders(UTF8Reader.java:182)
         at org.apache.xerces.readers.UTF8Reader.lookingAtChar(UTF8Reader.java:197)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.dispatch(XMLDocumentScanner.java:686)
         at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
         at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Unknown Source)
         {http://xml.apache.org/axis/}hostname:IBM-3D5B978A816
    org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
         at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:1792)
         at com.sunopsis.wsinvocation.client.a.a.d.a(d.java)
         at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
         at com.sunopsis.graphical.wsclient.f.b(f.java)
         at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
         at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
         at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
         at java.lang.Thread.run(Unknown Source)
    Caused by: org.xml.sax.SAXParseException: The root element is required in a well-formed document.
         at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1213)
         at org.apache.xerces.framework.XMLDocumentScanner.reportFatalXMLError(XMLDocumentScanner.java:570)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.endOfInput(XMLDocumentScanner.java:790)
         at org.apache.xerces.framework.XMLDocumentScanner.endOfInput(XMLDocumentScanner.java:418)
         at org.apache.xerces.validators.common.XMLValidator.sendEndOfInputNotifications(XMLValidator.java:712)
         at org.apache.xerces.readers.DefaultEntityHandler.changeReaders(DefaultEntityHandler.java:1031)
         at org.apache.xerces.readers.XMLEntityReader.changeReaders(XMLEntityReader.java:168)
         at org.apache.xerces.readers.UTF8Reader.changeReaders(UTF8Reader.java:182)
         at org.apache.xerces.readers.UTF8Reader.lookingAtChar(UTF8Reader.java:197)
         at org.apache.xerces.framework.XMLDocumentScanner$XMLDeclDispatcher.dispatch(XMLDocumentScanner.java:686)
         at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
         at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
         at javax.xml.parsers.SAXParser.parse(Unknown Source)
         at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
         ... 15 more

    Hi, Aprendiz, Thanks for you apply. Do you meet this problem. If I use the OdiInvokeWebService to Invoke the sync webservice. It has not problem. But the Async webservice has the error log. Now I must use OdiInvokeWebService.Thank you.
    Allen

  • Root element required

    SDNers,
    I have created a message type in XI and have exported the XSD. When I try to import the XSD in the syndicator, I get an error message: Root element required.
    Thanks in advance.
    + JT

    Hi Jolin,
    If u can share the solution as we have faced same problem.
    Rgds
    Ankit

  • Root element required error in syndication

    Hi,
    We have added few new fields into the main table. Now accordingly we need to update the Oubound map to include these new fields. I have created a new XSD file having these new fields. But when I try to use this in syndicator to update, it throws me an error back saying "Root element required". I checked in SDN but couldnt find enough clues.
    Any pointers will be highly appreciated.
    Regards,
    Ponraj M

    Hello,
    There are few possible root causes to this error appearing in MDM Syndicator:
    1. This error indicates that the XSD is not valid as there is no declaration of the root element.
    If you try to validate this XSD in XMLspy you will receive a similar error.
    2. The XSD declares the root element but it does not appear in the XML.
    If you validate the XML against the XSD in XMLspy you will receive a similar error.
    3. An illegal character in the XSD root element declaration makes it impossible for Syndicator to detect it.
    Please check these possible causes.
    Best regards,
    Hedda Cohen.

  • How can i change the ROOT ELEMENT name in my ADOBE Form

    Hello All,
    I need to change "data" the Root Element default name to another name.
    Is this possible? How do i do this?
    Thank you all in advance,
    Eran

    Hello Chintan and Otto,
    thank you for your replies...
    Chintan: There is Adobe livecycle designer CE and its a stand alone application :[ designer CE2|http://www.adobe.com/products/livecycle/]
    Otto: I know i can send the xml back and change it in my abap program but i'm talking about stand alone form in a computer with no sap on it.
    The user will fill it and submit it ...
    Thank you all in advance,
    Eran

  • Xerces Sockets and The root element is required

    Hi,
    I have a problem with Xerces 1.4.3 saying "The root element is required in a well-formed document.". The story is as follows:
    When I read the XML from a file, it works OK.
    But when I send the file over a socket stream, and try to parse it in the client side, it gives this silly message.
    I am sure that there is no space before <?xml ... ?> and also the xml file is well formed.
    I guess someone can say Xerces 2 solves this problem but I am using JBuilder 7 and I could not install the new xerces over old one. If someone knows how to do this please let me know. (Copying the jars into jbuilder7/lib does not seems to work as the file names are different and it wont overwrite the old xerces parser)
    Any solution?
    Thanks,

    saving and parsing is working fine. hehe :)
    seems that the parser is somewhat going crazy.
    btw. I had written a class extending InputStream, so that it reads more than one file from a socket stream. But I have used it in this save and parse test and it worked so I dont think I have problems with that.
    In one forum here, I saw someone saying that changing the version solved his problems about this silly thing. I think I wil try this.
    Tankut

  • How to make an XML in form of String to well-formed XML document

    Hi Folks,
         Thanks for all you support in Advance, i have a requirement, where i have an XML in one line string form and i wondering how to convert into well formed XML?
    Input XML sample:
    <root> <one><link1></link1></one><two></two> </root>
    to well-formed XML
    <root>
          <one>
              <link1></link1>
         </one>
         <two>
         </two>
    </root>
    I was trying to create a well-formed document using DOM or SAX parsers in ExcuteScript activity, but it is leading to some complicated exceptions. And i am looking for the simplest way for transformation.
    Please let me know
    thanks,
    Rajesh

    Rajesh,
    I don't understand. There is no difference between the two XML instances other than whitespace. They are both well-formed XML.
    <root> <one><link1></link1></one><two></two> </root>
    <root>
          <one>
              <link1></link1>
         </one>
         <two>
         </two>
    </root>
    Steve

  • Parse xml file and extract tags (not well formed)

    im writing an xml editor and i would like to extract tags from a string of xml. And the string doesnt have to be well formed xml.
    An example "</a><b asd="kjkj"></b>"
    Output
    end tag (a)
    start tag (b)
    end tag (b)
    Sax nor stax does the job since they want well formed document. and i dont want to write a parser myself.
    any suggestions

    im writing an xml editor and i would like to extract
    tags from a string of xml. And the string doesnt have
    to be well formed xml.Then you aren't writing an XML editor. And as you observe, existing parsers don't work for you because they are don't have the requirement to process garbage. Where did you get that requirement from, anyway?

  • Root Element in Syndicator?

    hi All,
    I am currently working with MDM Syndicator.
    My problem is about Root element
    when i am opening in the syndicator file-->destination properties
    it will open dialog box with the following options, (i.e. type,Remote system,port,xml schema,xml file name,Root.
    when i am selecting type as xml schema , romote system(i.e which i have declared in console for that repository). but when i click on OK button.
    it is asking for the Root element required.
    can any one help me about:
    1)what is root element?
    2)where we can declare root element and where we can use it in syndicator?
    3)what actually Root element holds in it?
    can any please provide answers to this questions
    thanks in Advance
    Bharat.chinthapatla

    Hi Michael,
    Thanks for your reply for the pervious question Michael.
    But.................?
    My Problem is..........
    Under Admin in console i  have selected XML Schema table and i have created one record with Name as "xml schema file one" and in the filename field i have clicked on the browse button and selected one .xsd file in the repository.
    (i have tried with .xml schema file also but not....)
    I have opened the syndicator on that particular repository and in the source item i am able to see the table and fields of that particular repository and i have clicked on the file option and i have choosen "Destination properties" it has opened dialog box with different input fields, there i have selected type as "xml schema" and Remote system " MDM "(default). when i selected type as xml schema automatically xml schema input field is enabled and it as shown all the xml schema files or record  which i have created in the XML schema table under Admin of the console.
    But Root element is not enabled, what i have to do?
    In the previous question you have said like this " <b>you have to add an XML Schema to your repository using the <u>corresponding branch</u> in the Console Admin menu</b>.
    what is the corresponding branch in the console Admin menu,  can you please explain me in details...
    if there is any other procedure to come out of this problem, can you please explain me in details ?
    Thanks in advance
    bharat.chinthapatla

  • Not well-formed XML

    Hi guys,
    I need to parse an XML file which is not well formed.
    For example, the value of an element named 'topic' contains html tags which are not ended properly etc..
    e.g. <topic>Some text <BR></topic>
    Why do I need this? Because some idiots on their web site publish XML data (not well formed) which indeed is very valuable to me, and I want to use it. I tried contacting them on the "not-well-formed-XML" issue but haven't managed to get a reply yet. Hence I have been struggling with this using the SAX API and so on...
    I think there should be a way to ignore some elements' content when parsing the XML data but I haven't been able to do it...I am not experienced on SAX or DOM API's...
    For example if the problem is caused only by the BR tags then when I encounter it, either startTag or endTag, I should be able to ignore it. When I say "ignore", I mean "not change the state of the parser", or undo the last state change or whatever...Well at least I think I would write an XML parser like this if I were to do that...
    Any help is appreciated...

    Sorry to be the bearer of bad news.
    There is no such thing as an "XML file which is not
    well formed." There are files that look like they
    might be XML files but are not valid. I think that is
    what you have. One of the key differences between XML
    and HTML is that HTML has allowed sloppy habits to
    become routine. XML prohibits them from getting past
    the hurdle of validation.
    Dave PattersonI'm not sure about the comments that you have made about the validity and well-formedness about XML documents. As I said I'm not experienced in XML but as far as I understand, a document is called "valid" when it conforms to all the constraints imposed by a DTD. However, there is no DTD in my case and the XML document I have is not "well-formed" as defined below:
    A well-formed XML document is syntactically correct. It does not have any angle brackets that are not part of tags. (The entity references < and > are used to embed angle brackets in an XML document.) In addition, all tags have an ending tag or are themselves self-ending (<slide>..</slide> or <slide/>). In addition, in a well-formed document, all tags are fully nested. They never overlap, so this arrangement would produce an error: <slide><image>..</slide></image>. Knowing that a document is well formed makes it possible to process it. A well-formed document may not be valid however. To determine that, you need a validating parser and a DTD.
    According to the above definition the XML document I have violates the constraints and not well formed. But you can argue that the XML document I got is not an XML document but it is just some document :) Then anyway, I am not sure about all this terminology...
    The technique you suggested seems reasonable but as far as I know the SAX parser stops parsing when a fatal error is encountered. So I don't know how I will trap/ignore the error and continue...
    As for the JTidy suggestion:
    I have tried using HttpUnit which uses JTidy and couldn't get it right. I think when a DOM is created using JTidy the document must also be well formed (XHTML or whatever)...Am I wrong here?
    Thanks a lot...

  • Declaring namespaces ONLY on root element during serialization

    I'm using JAXP 1.3 and I'd like to be able to serialize a document so that the namespace declarations are only specified once on the root element and not repeated throughout the document.
    I'm working on a journal publication system and the request came from our users (i.e., editors) who say the repeated declarations are distracting when editing the XML. They are using an XML editor (Arbortext), but when they have the view set to display tags all the namespace declarations really clutters up the screen. In particular, we use the MathML namespace:
    <m:math overflow="scroll" xmlns:m="http://www.w3.org/1998/Math/MathML">
    Can this be done?
    Thanks,
    Jeff Bailey

    It's just declared on on the root element on the input file.
    I just tried what you suggested and it worked great. The mathml namespace is only declared on the root element in my output file now.
    Odd that there's a difference between the two methods. For posterity, here's the code I used to serialize the XML:
    TransformerFactory transformerFactory = TransformerFactory
    .newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    transformer.setOutputProperty(OutputKeys.METHOD, "xml");
    transformer.setOutputProperty(OutputKeys.ENCODING, "US-ASCII");
    transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,
    doc.getDoctype().getPublicId());
    transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,
    doc.getDoctype().getSystemId());
    OutputStream outputStream = new FileOutputStream(new File(
    "C:\\temp\\foo.xml"));
    transformer.transform(new DOMSource(doc),
    new StreamResult(outputStream));
    Thanks very much for your help.
    Jeff

  • Document root element is missing: migrating spring app from tomcat

    Hi!
    can anybody help me with this issue?
    I have ported my tomcat spring application to netweaver(6.40, SP 17, Windows 2k SP4) and i get the following error:
    Error occured in invoking event "contextInitialized()" on listener clas
    s com.webapp.listener.StartupListener. The error is: org.springfram
    ework.beans.factory.BeanCreationException: Error creating bean with nam
    e 'sessionFactory' defined in ServletContext resource [/WEB-INF/applica
    tionContext-hibernate.xml]: Initialization of bean failed; nested excep
    tion is org.hibernate.MappingException: Could not parse mapping documen
    t in input stream
    org.hibernate.MappingException: Could not parse mapp
    ing document in input stream
         at org.hibernate.cfg.Configuration.addIn
    putStream(Configuration.java:430)
         at org.springframework.orm.hibernat
    e3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.j
    ava:654)
         at org.springframework.beans.factory.support.AbstractAutowir
    eCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactor
    y.java:1059)
         at org.springframework.beans.factory.support.AbstractAut
    owireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.j
    ava:363)
         at org.springframework.beans.factory.support.AbstractBeanFac
    tory.getBean(AbstractBeanFactory.java:226)
         at org.springframework.bea
    ns.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java
    :147)
         at org.springframework.beans.factory.support.DefaultListableBea
    nFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
         at org.springframework.context.support.AbstractApplicationContext.ref
    resh(AbstractApplicationContext.java:320)
         at org.springframework.web.
    context.support.AbstractRefreshableWebApplicationContext.refresh(Abstra
    ctRefreshableWebApplicationContext.java:134)
         at org.springframework.w
    eb.context.ContextLoader.createWebApplicationContext(ContextLoader.java
    :246)
         at org.springframework.web.context.ContextLoader.initWebApplica
    tionContext(ContextLoader.java:184)
         at org.springframework.web.contex
    t.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:4
    9)
         at com.ifx.webapp.listener.StartupListener.contextInitialized(Star
    tupListener.java:42)
         at com.sap.engine.services.servlets_jsp.server.r
    untime.context.WebEvents.contextInitialized(WebEvents.java:45)
         at com
    .sap.engine.services.servlets_jsp.server.container.ApplicationThreadIni
    tializer.run(ApplicationThreadInitializer.java:112)
         at com.sap.engine
    .core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.sec
    urity.AccessController.doPrivileged(Native Method)
         at com.sap.engine.
    core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.
    sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    C
    aused by: org.dom4j.DocumentException: Error on line 1 of document  : D
    ocument root element is missing. Nested exception: Document root elemen
    t is missing.
         at org.dom4j.io.SAXReader.read(SAXReader.java:482)
         at
    org.hibernate.cfg.Configuration.addInputStream(Configuration.java:421)
         ... 18 more
    And yes, the xml files are valid xml files at least in anything i've used to look at them (eclipse, ultraedit, notepad, ie) :).....
    Thank you!
    ps. the file:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
        <!-- Hibernate SessionFactory -->
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="mappingResources">
                <list>
                    <value>package/ModelObj1.hbm.xml</value>
                    <value>package/ModelObj2.hbm.xml</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
                </props>
            </property>
        </bean>
        <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
        <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
        <!-- Generic DAO - can be used when doing standard CRUD -->
        <bean id="dao" class="com.dao.hibernate.BaseDAOHibernate">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
    </beans>

    hi istvan,
    we are also migrating from websphere to netweaver.
    But in spring framework we r facing problems.
    We hav spring-beans.jar file in lib dir of Web Application. But When we are creating BeanFactory from xml as,
    BeanFactory beanFactory = new ClassPathXmlApplicationContext ("client-config.xml");
    clent-config.xml file contains :
    [code<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
         <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
              <property name="location">
                   <value>conf/service-client/client.properties</value>
              </property>
         </bean></beans>
    [/code]
    But code is giving exception: ClassNotFoundException -org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.
    Wat is the problem ?
    Kindly help.
    We are also using JAAS for authentication.We are refering above code from our LoginModules login() method.
    Regards,
    sagar.

  • The markup in the document preceding the root element must be well-formed

    Hi,
    Each time I add some library, something serious happens to my NetBeans5.5 and Tomcat 5.5.17. This time I added jsf-facelets.jar and now nothing is being deployed. I m getting following exception
    javax.servlet.ServletException: Error Parsing /Dept.jsp: Error Traced[line: 1] The markup in the document preceding the root element must be well-formed.
         javax.faces.webapp.FacesServlet.service(FacesServlet.java:202)
    Is there any special procedure to follow to add libraries?
    Plz help.

    Facelets is XHTML. XHTML is XML-HTML. XML require strict well-formness of the tags. I.e. every tag should be correctly nested and closed.
    I would say, read the Facelets Developer Documentation: http://www.google.com/search?q=facelets+developer+documentation

  • Warnings about root element must be well-formed

    Hey, I just downloaded and am getting running with FlexMetrics.  I'm running this from the ant taskdef.  When I run it, I get what looks to be valid and fine XML reports generated, but I also get a bunch of warnings, each of which reads:
    [flex-metrics] Oct 25, 2010 11:54:00 AM de.bokelberg.flex.parser.AS3Scanner$XMLVerifier verify [flex-metrics] WARNING: The markup in the document preceding the root element must be well-formed. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Error HandlerWrapper.java:195) [flex-metrics] com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrappe r.java:174) [flex-metrics] com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.jav a:388)
    The taskdef element is pretty standard:
    <taskdef name="flex-metrics" classname="com.adobe.ac.pmd.metrics.ant.FlexMetricsAntTask" classpath="${flexpmd.libs}/flex-pmd-metrics-ant-task-${flexpmd.version}.jar">
        <classpath>
            <pathelement location="${flexpmd.libs}/flex-pmd-files-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/flex-pmd-metrics-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/as3-plugin-utils-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/as3-parser-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/as3-parser-api-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/commons-lang-2.4.jar" />
            <pathelement location="${flexpmd.libs}/flex-pmd-ruleset-api-${flexpmd.version}.jar" />
            <pathelement location="${flexpmd.libs}/pmd-4.2.5.jar" />
            <pathelement location="${flexpmd.libs}/dom4j-1.6.1.jar"/>
        </classpath>
    </taskdef>
    References to this look like this:
    <flex-metrics sourcedirectory="${home.project}\src" outputfile="${deploy.dir}/metrics/project.javancss.xml" />
    So I'm not doing anything weird or crazy with it.  I get that error message repeated 42 times.  I can't really seem to correlate that number with anything in my project, i.e. we've got more than 42 mxml files (59 of them), we've got more than 42 AS3 files, etc.  So I'm not really sure what it's hitting 42 times to come up with that error.
    Any ideas on what this might indicate would be greatly appreciated!

    My working theory is that it chokes on instances of the Vector Object (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html) but I have yet to verify that conclusively.

Maybe you are looking for