[xsd-users] XSD cd-Tree - LandXML Wrong Serializing
Constantin Iacobescu
sir.costy at gmail.com
Mon Mar 2 03:55:26 EST 2009
Hello,
I had tried to parse and serialize an xml file which use the LandXML.xsd
specifications. So the binding command was some like:
xsd cxx-tree --generate-serialization --generate-polymorphic
--generate-doxygen --generate-wildcard --generate-ostream --type-naming java
--function-naming java --namespace-map
http://www.landxml.org/schema/LandXML-1.2=NSXML LandXML-1.2.xsd
The input xml fil start like this:
<?xml version="1.0"?>
<LandXML xmlns="http://www.landxml.org/schema/LandXML-1.2" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.landxml.org/schema/LandXML-1.2
http://www.landxml.org/schema/LandXML-1.2/LandXML-1.2.xsd" version="1.2"
date="2003-10-01" time="13:16:41" readOnly="false" language="English">
<Project name="mantopo" desc="mantopo"/>
<Units>
<Imperial linearUnit="USSurveyFoot" areaUnit="squareFoot"
volumeUnit="cubicFeet" temperatureUnit="fahrenheit" pressureUnit="inHG"/>
</Units>
</LandXML>
But now is coming the bad think because the serialized file looks some
different. Always has this "p1:" thing which I think is related with some
namespace trouble.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<p1:LandXML xmlns:p1="http://www.landxml.org/schema/LandXML-1.2"
date="2003-10-01" language="English" readOnly="false" time="13:16:41"
version="1.2">
<p1:Units>
<p1:Imperial angularUnit="radians" areaUnit="squareFoot"
directionUnit="radians" elevationUnit="meter" latLongAngularUnit="decimal
degrees" linearUnit="USSurveyFoot" pressureUnit="inHG"
temperatureUnit="fahrenheit" volumeUnit="cubicFeet"/>
</p1:Units>
<p1:Project desc="mantopo" name="mantopo"/>
</LandXML>
The code use to made that is very simple, just loading and parsing the xml
file and then serializing it
using namespace xercesc;
XMLPlatformUtils::Initialize ();
try
{
using namespace NSXML;
namespace xml = xsd::cxx::xml;
namespace tree = xsd::cxx::tree;
std::auto_ptr<LandXML> objLandXML ( parseLandXML("InXML.xml",
xml_schema::Flags::dont_initialize));
// and now serialize it
std::ofstream ofs;
ofs.open ("OutXML.xml");
serializeLandXML (ofs, *objLandXML)
}
Some simple thing but I don´t understand what´s going wrong by here that is
generated that "p1" thing.
Please help me.
Regards,
Constantin Iacobescu
More information about the xsd-users
mailing list