commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bond - James D." <james...@telesoft.com>
Subject Re: [ configuration ] setting top-level attributes
Date Wed, 19 Sep 2007 16:15:51 GMT

> Bond - James D. wrote:
> > Hopefully this is a simple one.  I have a semi-non-standard xml file that 
> > has attributes in the Top-level element and I'm not able to set the 
> > attributes on it.  How would I do that with XMLConfiguration?  I tried the 
> > following but it didn't work:
> > 
> > xmlCfg.setProperty("[@payloadID]", ""+System.currentTimeMillis());
> 
> Hm, your code should work. I added the following unit test, which runs 
> successful:
> 
>      /**
>       * Tests setting an attribute on the root element.
>       */
>      public void testSetRootAttribute() throws ConfigurationException
>      {
>          conf.setProperty("[@test]", "true");
>          assertEquals("Root attribute not set", "true", conf
>                  .getString("[@test]"));
>          conf.save(testSaveConf);
>          XMLConfiguration checkConf = new XMLConfiguration();
>          checkConf.setFile(testSaveConf);
>          assertTrue("Attribute not found after save", checkConf
>                  .containsKey("[@test]"));
>      }
> 
> (where conf is a XMLConfiguration). As you can see, I also only specify 
> the attribute part of the key.
> 
> Can you double-check with this code? Or can you provide an example code 
> fragment, which does not work?
> 
> Oliver

Ok, I can't get it to work ... here's my code:

String xmlTemplate = "c:\\temp\\ordermessage.xml";
String newXmlTemplate = "c:\\temp\\changedordermessage.xml";

XMLConfiguration xmlCfg = new XMLConfiguration(xmlTemplate);
xmlCfg.setValidating(false);
xmlCfg.setEncoding("UTF-8");
xmlCfg.setProperty("[@payloadID]", ""+System.currentTimeMillis());
xmlCfg.setProperty("[@timestamp]", new Date().toString());
FileWriter outter = new FileWriter(newXmlTemplate);
xmlCfg.save(outter);
outter.close();
xmlCfg.clear();

And here is the XML file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.008/cXML.dtd">
<cXML payloadID="29066032971189013758490" timestamp="2007-09-12T09:34:16-05:00">
  <Header>
    <To>
      <Credential domain="testID">
        <Identity>12345</Identity>
      </Credential>
    </To>
  </Header>
</cXML>




-- 
James Dalrymple


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message