Dear all,

I have a problem that has been annoying me for the last few days.

I am building a test framework. Our test cases are created in an xml file which depicts the test case, since some settings are common to all the test cases we have a dtd file with these settings. My problem is that the xml and dtd files are correctly parsed in Ubuntu 7.04 but aren't in MS Windows.

XML file:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE execution [
   <!-- settings -->
   <!ENTITY % settings SYSTEM "settings.dtd">
   %settings;
]>

<execution>
   <outputfiles deleteprevious="true"></outputfiles>
   <testmanager>
<outputter class="CAggregOutputter" create="true" level="20" name="agregoutputter" > <outputter class="CConsoleOutputter" create="true" level="20" name="consoleoutputter" /> <outputter class="CBufferedFileOutputter" create="true" level="20" name="bufferedfileoutputter" />
       </outputter>
<!--&defaultuserinteraction;-->
       <userinteraction waittoend="true" rank="0" attachdebugger="false" />
       <exception handlesystem="true" />
<resultmanager class="CMsgCreatorResultManager" create="true" name="resultmanager">
           <xmlfile>./result-test-msg-id.xml</xmlfile>
       </resultmanager>
<thread name="default" create="true"> <scheduler class="CSchedulerStepInterleaving" create="true" name="scheduler" /> <syncgroup class="CMsgCreatorSyncGroup" create="true" name="test_msg_id"> <resourcepool class="CRCP_Integer" create="true" name="msg-id">
                   <range begin="0" end="6" step="1" />
               </resourcepool>
<resourcepool class="CRCP_Integer" create="true" name="msg-destination">
                   <range begin="0" end="128" step="32" />
               </resourcepool>
<resourcepool class="CRCP_String" create="true" name="name_of_tester"> <resource class="CRSC_String" create="true" name="user login"></resource>
               </resourcepool>
<resourcepool class="CRCP_String" create="true" name="name_of_tag"> <resource class="CRSC_String" create="true" name="cvs tag"></resource>
               </resourcepool>
<test class="CTestMsgID" create="true" name="TestMsgID">
                   <skipto iteration="0"/>
               </test>
</syncgroup> </thread> <run times="1" /> </testmanager> </execution>


DTD file:

<!ENTITY outputLvl "20">
<!ENTITY name_of_tester "user login">
<!ENTITY name_of_tag "cvs tag">
<!ENTITY defaultuserinteraction '<userinteraction waittoend="true" rank="0" attachdebugger="false" />'>
<!ENTITY defaultexception '<exception handlesystem="true" />'>

the parsing is done using the following code

The code where it the problem occurs is this section.
CODE:

   XMLPlatformUtils::Initialize();
   m_pcXMLParser = new XercesDOMParser ();

   m_strURL = str_url;

   m_pcXMLParser->setCreateEntityReferenceNodes(false);

   // If we have an URL create an input source:
   if (!m_strURL.empty ()) {
       m_pcInputSource = new URLInputSource (XMLURL (m_strURL.c_str ()));

       m_pcXMLParser->parse (*m_pcInputSource);


       if (m_pcXMLParser->getDocument () == NULL)
throw TESTEXCEPTION("Found empty xml document. Possibly tried to open wrong document(see the next files: setings.dtd,..).");

       if (m_pcXMLParser->getDocument ()->getDocumentElement () == NULL)
throw TESTEXCEPTION("Found empty xml document. Possibly tried to open wrong document(see the next files: setings.dtd,..).");

   } else
       m_pcInputSource = NULL;


In Windows it always returns null in the "m_pcXMLParser->getDocument ()->getDocumentElement ()" line. I have noticed that if I remove the "%settings" line in the XML file it does not return null but it also doesn't import the settings, so no use for this solution.

I have been searching google and the user mailing list for something similar but couldn't find anything. One more thing I'm using the static version of Xerces-C 2.7 library.

Hope you can help me, any more info you need please ask.

Thanks in advance.

Kind Regards

--

José Rui Simões

Junior Engineer

Critical Software, SA

Parque Industrial de Taveiro, Lote 48
3045-504 Coimbra, Portugal
Tel:+351.239 989 100 Fax:+351.239 989 119
http://www.criticalsoftware.com <http://www.criticalsoftware.com/>
[EMAIL PROTECTED] <mailto:jose-r-simoes%40criticalsoftware.com>


Reply via email to