Fatal Error :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException

17,708

Solution 1

StringReader("myfile.xml") takes a string argument that must be XML, not a filename. The parser is reading the string literal, myfile.xml, (not the file contents of myfile.xml) and failing immediately because an XML document may not begin with an m character.

Change

Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml")));

to

Document doc = dBuilder.parse(new InputSource("myfile.xml"));

Solution 2

You probably have an UTF-8 file with a byte-order marker (BOM). It’ll be invisible to most editors, but might mess with the parser. Try converting to UTF-8 without BOM.

Share:
17,708
ceid-vg
Author by

ceid-vg

Updated on June 05, 2022

Comments

  • ceid-vg
    ceid-vg almost 2 years

    I am trying to read an XML file in Java and then compare it against its XML Schema but I can't get past this error :

    [Fatal Error] :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

    This is the start of the file reading

    try {
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();          
            Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml"))); // ERROR OCCURS HERE
    

    I scanned my XML through HEX Editors but I did not find any weird characters inside, so I dont know where the problem is

    myfile.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    
    <Schedule xmlns ="schedule"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:noNamespaceSchemaLocation="schedule.xsd">
        <Lesson>
            <Title>Artificial Intelligence</Title>
            <Lecture Classroom="BA">
                <Day>Wednesday</Day>
                <Time>09-11</Time>
            </Lecture>
            <Professor>Hatzilygeroudis</Professor>
        </Lesson>
        <Lesson>
            <Title>Constraint Satisfaction Problems</Title>
            <Lecture Classroom="B3">
                <Day>Monday</Day>
                <Time>19-21</Time>
            </Lecture>
        </Lesson>
        <Lesson>
            <Title>Knowledge Representation in Web</Title>
            <Lecture Classroom="P200">
                <Day>Friday</Day>
                <Time>15-17</Time>
            </Lecture>
            <Professor>Hatzilygeroudis</Professor>
        </Lesson>
        <Lesson>
            <Title>Artificial Intelligence</Title>
            <Lecture>
                <Day>Monday</Day>
                <Time>19-21</Time>
            </Lecture>
        </Lesson>
        <Lesson>
            <Title>AI Programming</Title>
            <Lecture Classroom="B3">
                <Day>Monday</Day>
                <Time>11-13</Time>
            </Lecture>
        </Lesson>
        <Lesson>
            <Title>Introduction to Procedural Programming</Title>
            <Lecture Classroom="P200">
                <Day>Wednesday</Day>
                <Time>15-17</Time>
            </Lecture>
            <Professor>Papadopoulos</Professor>
        </Lesson>
    </Schedule>