Hello,

I'm not sure if this is expected or not, I'll let you guys figure that
out. I have the following two schemas:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
targetNamespace="http://www.example.org/Person";
xmlns:person="http://www.example.org/Person";
elementFormDefault="qualified">
   <xsd:element name="Person" type="person:PersonType"></xsd:element>
   <xsd:complexType name="PersonType">
        <xsd:sequence>
                <xsd:element name="Name" type="xsd:string"></xsd:element>
                <xsd:element name="Age" type="xsd:string"></xsd:element>
                        <xsd:any namespace="##other" processContents="lax" 
minOccurs="0"
maxOccurs="unbounded"/>
        </xsd:sequence>
                <xsd:anyAttribute namespace="##other" processContents="lax"/>
   </xsd:complexType>
</xsd:schema>


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:open="http://www.example.com/bad";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
targetNamespace="http://www.example.com/bad";>
   <xsd:attribute name="globAttribute" type="xsd:decimal"/>
   <xsd:complexType name="OneElementAndAnyAttr">
       <xsd:sequence>
           <xsd:element name="name" type="xsd:string"/>
       </xsd:sequence>
       <xsd:anyAttribute processContents="lax"/>
   </xsd:complexType>
</xsd:schema>


If I define each schema with a separate context, I get the last part
of the URI as the namespace indicator. If I define both with the same
context, I get the same indicator as in the schema.

This should make it clearer. Here's my code:

       HelperContext context = SDOUtil.createHelperContext();
       HelperContext context2 = SDOUtil.createHelperContext();

       context.getXSDHelper().define(new
FileInputStream("./Person.xsd"), (new
File("./Person.xsd")).toURI().toString());
       DataObject person =
context.getDataFactory().create("http://www.example.org/Person";,
"PersonType");

       person.setString("Name", "Jim");
       person.setString("Age", "30");

       context2.getXSDHelper().define(new
FileInputStream("./Open.xsd"), (new
File("./Open.xsd")).toURI().toString());
       Property prop =
context2.getTypeHelper().getOpenContentProperty("http://www.example.com/bad";,
"globAttribute");

       person.set(prop, new BigDecimal(6));

       context.getXMLHelper().save((DataObject) person,
"http://www.example.org/Person";, "Person", System.out);

When using context2 as above, I get the following output:

<?xml version="1.0" encoding="ASCII"?>
<person:Person xmlns:bad="http://www.example.com/bad";
xmlns:person="http://www.example.org/Person"; bad:globAttribute="6">
 <person:Name>Jim</person:Name>
 <person:Age>30</person:Age>
</person:Person>

Notice "xmlns:bad" in that output. Now when I remove context2 and use
the same context throughout, I get the following output:

<?xml version="1.0" encoding="ASCII"?>
<person:Person xmlns:open="http://www.example.com/bad";
xmlns:person="http://www.example.org/Person"; open:globAttribute="6">
 <person:Name>Jim</person:Name>
 <person:Age>30</person:Age>
</person:Person>

This output has "xmlns:open". I'm wondering, is this the expected
behavior? Also, is there a way for me to define this string through
other parameters?

Thanks,
-Chris

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to