Can you create an open type on the fly? Is the datafactory not "locked" once
the first DO is created?

Cheers,


On 09/10/06, Geoffrey Winn <[EMAIL PROTECTED]> wrote:

Sebastian,

I looked into this a bit more and it may not be as bad as it appears.

Currently, when the XML parser encounters an element for which there is no
type defined, it ignores that element and all of its content, resuming the
parse once that unknown element has ended. The exception to this is when
the
element is a member of a parent that is defined to have open content. In
your example, the root element has no type definition and, of course, it
can't have a parent with open content, so it and all of its contents are
ignored, which explains the output that you see.

I can see one possible workaround and one possible fix for this.

The workaround is that you provide an xsd that defines just the root
element
giving it open content. In your case that would be something like

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<xsd:element name="customer" type="customerType"/>
<xsd:complexType name="customerType">
   <xsd:sequence>
     <xsd:any namespace="##other" processContents="lax"/>
   </xsd:sequence>
</xsd:complexType>
</xsd:schema>

Then the root element has a type and will be processed normally, and
everything it contains will be processed as open content. I tried this and
it seems to work.

The fix would be for me to hack the code so that when we find that a root
element has no corresponding type (or possibly when there are no user
defined types at all) then I could automagically create an open type for
it.
This would give the same behaviour as the previous case but spare you the
need to provide the .xsd

I'm inclined to just go ahead and do that since its not obviously any
worse
than the current behaviour but I'm open to other ideas.

Regards,

Geoff.

On 07/09/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
>
> Well, I can load it, but it's desperately empty :)
>
> Given the following XML:
> <customer><firstName>Jane</firstName><lastName>Doe</lastName></customer>
>
> I have no XSD for this document, and don't want to have one or have to
> define specific SDO types for it. I just want to load this XML into an
> SDO DataObject.
>
> XMLDocumentPtr doc = XMLHelper::load(xml);
> gives me an XMLDocumentPtr with no root DataObject.
>
> char* xml = XMLHelper::save(doc);
> gives me this:
> <?xml version="1.0" encoding="UTF-8"?>
>
> Is this supported by our SDO/C++ implementation? or is it a bug?
>
> --
> Jean-Sebastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>




--
Pete

Reply via email to