Link to home
Start Free TrialLog in
Avatar of keepworking
keepworking

asked on

please help on a bug --XML URGENT

----------this is the xsd file-----------------

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="IMPORTER">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="CONTENT_SRC"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CONTENT_SRC">
    <xs:complexType>
      <xs:sequence>
       <xs:element name="ALIAS" type="xs:string" minOccurs="1"/>
      <xs:element name="TEXT" type="xs:string" minOccurs="1"/>
      <xs:element name="NOTES" type="xs:string" minOccurs="0"/>
       <xs:element name="DATA_SOURCE" type="xs:string" minOccurs="0"/>
      <xs:element name="IS_CLIENT" type="xs:string" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
---------------------------------------------------------------------------

-------------------this is the xml passed systax validation by method below

<?xml version="1.0" encoding="UTF-8"?>

<IMPORTER xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="importer.xsd">
      <CONTENT_SRC>
            <ALIAS>124324</ALIAS>
            <TEXT>Hello</TEXT>
            <NOTES></NOTES>
            <DATA_SOURCE></DATA_SOURCE>
            <IS_CLIENT></IS_CLIENT>
      </CONTENT_SRC>
</IMPORTER>

--------------------------------------------------------------------------------------
public static boolean validateXMLSyntax(String fileName, String schemaFile )
                                                                        throws IOException, SAXException            
      {
            SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Source schemaSource = new StreamSource(new File(schemaFile));
            Schema schema = schemaFactory.newSchema(schemaSource);

            Validator validator = null;
            ImporterErrorHandler mySchemaErrorHandler = new ImporterErrorHandler();            
            try
            {
                  validator = schema.newValidator();                  
                  validator.setErrorHandler(mySchemaErrorHandler);
                  validator.validate(new StreamSource(fileName));
                  
            } catch (SAXException e)
            {
                  System.out.println("Exception thrown in ValidateXML.validateXMLSyntax() - my exception: " + e);
            }            
            
            setReport( mySchemaErrorHandler.getError() );
            
            if ( getReport() == null )
            {
                  return true;                  
            }
            return false;
      }
            
--------------------------------------------------question is continued-----------------------------
Avatar of keepworking
keepworking

ASKER

-----------------this is the file not passed the snytax validation by same method--------
----------------------I think the 2 xml files are same except the records size. so my method in java is wrong?????????????????????
-------
--------the error message for this file is Parse Fatal Error Line: 2 Message: The processing instruction target matching "[xX][mM][lL]" is not allowed.??????????????????????????????????????????????????/-

<?xml version="1.0" encoding="UTF-8"?>
<IMPORTER xmlns:xsi="http://www.23.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="importer.xsd">     <CONTENT_SRC>        
<ALIAS>211         </ALIAS>        
<TEXT>Load Game         </TEXT>        
<NOTES>UI         </NOTES>        
<DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>        
<IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>210         </ALIAS>         <TEXT>Save Game         </TEXT>         <NOTES>UI         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>212         </ALIAS>         <TEXT>NEW MAP         </TEXT>         <NOTES>Map Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>213         </ALIAS>         <TEXT>NEW MAP DESCRIPTION         </TEXT>         <NOTES>Map Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>214         </ALIAS>         <TEXT>River Raid         </TEXT>         <NOTES>Map Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>215         </ALIAS>         <TEXT>River Raid Description         </TEXT>         <NOTES>Map Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>216         </ALIAS>         <TEXT>No Way Out         </TEXT>         <NOTES>Map Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>217         </ALIAS>         <TEXT>No Way Out Description         </TEXT>         <NOTES>Map Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>218         </ALIAS>         <TEXT>River Raid         </TEXT>         <NOTES>Mission Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>219         </ALIAS>         <TEXT>River Raid Mission Description         </TEXT>         <NOTES>Mission Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>220         </ALIAS>         <TEXT>NEW MISSION         </TEXT>         <NOTES>Mission Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>221         </ALIAS>         <TEXT>NEW MISSION DESCRIPTION         </TEXT>         <NOTES>Mission Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>222         </ALIAS>         <TEXT>No Way Out         </TEXT>         <NOTES>Mission Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>223         </ALIAS>         <TEXT>No Way Out Mission Description         </TEXT>         <NOTES>Mission Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>224         </ALIAS>         <TEXT>Map Test         </TEXT>         <NOTES>Map Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>225         </ALIAS>         <TEXT>Test Map         </TEXT>         <NOTES>Map Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>226         </ALIAS>         <TEXT>Map Test         </TEXT>         <NOTES>Mission Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>228         </ALIAS>         <TEXT>AI Test         </TEXT>         <NOTES>Map Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>229         </ALIAS>         <TEXT>AI Test Map         </TEXT>         <NOTES>Map Description         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC>     <CONTENT_SRC>         <ALIAS>230         </ALIAS>         <TEXT>AI Test         </TEXT>         <NOTES>Mission Name         </NOTES>         <DATA_SOURCE>gam_mars_db.mdb         </DATA_SOURCE>         <IS_CLIENT>true         </IS_CLIENT>     </CONTENT_SRC> </IMPORTER>
try this method,


public static boolean validateXMLSyntax(String fileName, String schemaFile )
    throws IOException, SAXException, JAXBException, ParserConfigurationException          
    {
            try
            {
            final String sl = XMLConstants.W3C_XML_SCHEMA_NS_URI;
               SchemaFactory factory = SchemaFactory.newInstance(sl);
               StreamSource ss = new StreamSource(schemaFile );
               Schema schema = factory.newSchema(ss);

               SAXParserFactory spf = SAXParserFactory.newInstance();
               spf.setSchema(schema);
               SAXParser parser = spf.newSAXParser();
               parser.parse(new File ( fileName ),new DefaultHandler ()  );
               return true ;
            }
            catch ( Exception e )
            {
                  return false ;
            }
      }

ASKER CERTIFIED SOLUTION
Avatar of Mayank S
Mayank S
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Check if you have an empty line on the top of the file (before the xml declaration).
So what was the problem? And why the C grade, you can ask for more clarification if you want?
"http://www.23.org/2001/XMLSchema-instance

the real problem http://www.23.org/, it should be changed to http://www.w3.org

I gave C, because none find the problem and give me any usful hint.

You're supposed to at least get back to the experts and say that, before closing it, if you need more assistance.
do you think you don't deserve that 500 points?
That's not the point~! The point is that if you still face problems, tell us so that we can think of ways to help you better. If you stay quiet, we are not mind readers to assume what is happening at your end,