2
Vote

Namespaces should be qualified

description

The TXLife object expects XML like this:
 
<TXLife xmlns="http://ACORD.org/Standards/Life/2">
<UserAuthRequest xmlns="">...</UserAuthRequest>
<TXLifeRequest xmlns="">...</TXLifeRequest>
</TXLife>
 
However, the ACORD spec says the inner namespaces should be qualified like this:
 
<TXLife xmlns="http://ACORD.org/Standards/Life/2">
<UserAuthRequest>...</UserAuthRequest>
<TXLifeRequest>...</TXLifeRequest>
</TXLife>
 
I fixed this by opening the AcordEntities.cs file and doing a find and replace of "Form=XmlSchemaForm.Unqualified" with "Form=XmlSchemaForm.Qualifed". It seems to be working, but I haven't fully tested it yet. This might fix the entities, but I think the generator needs to be updated.

comments

hvmptydvmpty wrote Sep 17, 2009 at 4:56 PM

The real issue is that elementFormDefault="unqualified" (used in all ACORD schema files) applies to local elements only (defined within other elements), and not to globally-defined elements such as TXLifeRequest. Global elements are defined at the level just below <schema/>. See http://www.w3.org/TR/xmlschema-0/#NS for the explanation from W3C and http://www.xfront.com/HideVersusExpose.html for an alternative explanation (arriving at the same conclusion).

Instead of using recently added /q switch, the tool must simply interpret the schema correctly.

wrote Feb 13, 2013 at 11:22 PM