Re: XMLBeans does not correctly propagate namespaces

Peter Keller <[email protected]> Thu, 8 Jul 2010 10:08:16 +0100 (BST)
Newsgroups gmane.text.xml.xmlbeans.user
Message-ID <[email protected]>
Hi Justin,

I looks to me that you are confused because you think that midas/mida are 
namespace names. They are not: they are arbitrary prefixes that map to 
namespace names. You haven't told us what the actual namespace name is in 
your example, but somewhere in your schema you should have something like:

<xs:schema .... xmlns:midas="http://some.place.com/namesaces/someNamespace" ...>

which maps the prefix "midas" to the namespace name 
"http://some.place.com/namesaces/someNamespace". If you don't have such a 
mapping, adding one may fix your problem.

The namespace name is any URI (full syntax is described in 
http://tools.ietf.org/html/rfc3986 ). It is quite common to use URL-like 
strings beginning http://... because they are easy to make unique, but it 
doesn't necessarily mean that the namespace name is a real URL, or that 
anything is downloadable from it. (Where no downloadability is implied, I 
personally prefer to use "tag" URI's as described in 
http://tools.ietf.org/html/rfc4151 )

Your mapping between "midas" and your namespace name might not be in the 
top-level <xs:schema> element. It could be in any element, in which case, 
the prefix applies to that element and all contained elements. It shouldn't 
matter that XMLBeans has changed the prefix from "midas" to "mida": it 
should have changed the prefix in any xmlns:midas="..." declaration to 
xmlns:mida="..." to be consistent. It is the namespace name that must be 
preserved unchanged. The prefix can be fluid, as long as in the context in 
which it occurs it is mapped to the correct namespace name.

Having said that, if you want to influence the namespace prefixes, see this 
FAQ entry: http://wiki.apache.org/xmlbeans/XmlBeansFaq#suggestedPrefixes

I hope that this is helpful,
Peter.

On Wed, 7 Jul 2010, Justin Bailey wrote:

> Hi list,
> 
> I'm a developer on a major software project and I have just traced down a problem to a possible bug or misconfiguration in
> XMLBeans.  I can only speculate that XMLBeans does not like plural words.  Let me describe the problem, with names changed
> to protect "proprietary information"...
> 
> Suppose that I have an XSD schema declared approximately like so:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
>   .
>   .
>   .
>   <xs:complexType name="Model">
>     <xs:attribute name="id" type="xs:string"/>
>     <xs:sequence>
>       <xs:element name="Type">
>         <xs:simpleType>
>           <xs:restriction base="xs:string">
>             <xs:enumeration value="Statistical" />
>             <xs:enumeration value="Heuristic" />
>             <xs:enumeration value="Bayesian" />
>           </xs:restriction>
>         </xs:simpleType>
>       </xs:element>
>     </xs:sequence>
>   </xs:complexType>
>   .
>   <xs:complexType name="FrotzModel">
>     <xs:complexContent>
>       <xs:extension base="midas:Model">
>       </xs:extension>
>     </xs:complexContent>
>   </xs:complexType> 
>   .
>   .
>   .
> </xs:schema>
> 
> etc.  I validate, compile, and jar up the XSD using XMLBeans.  No problem.  I then do something like this:
> 
> FrotzModel blorb = FrotzModel.Factory.newInstance();
> blorb.setID("model id");
> blorb.setType(Model.Type.STATISTICAL);
> 
> At this point, a printout of the XML structure displays the following:
> 
> 
>   <mida:Type>Statistical</mida:Type>
> </xml-fragment>
> 
> Somehow, XMLBeans thinks "midas" is the plural of "mida" and has helpfully dropped the S since I only have one of them.  But
> that's not what I want!  Our suite of programs depends on the namespaces being propagated correctly, and "mida" clearly does
> not equal "midas", resulting in a failed parse of the XML.
> 
> I am earnestly hoping that this is a simple configuration option that I am just not aware of; I would find it very
> surprising if this were a bug.  I am basically a beginner at XSD schemas, so it is entirely possible I missed something. 
> Nevertheless, it is a show-stopper preventing me from making forward progress.  I have searched Google, the XMLBeans FAQ,
> and the mailing list but have not found anything useful.  I am hopeful that this list will provide me with enlightenment. :)
> 
> Thanks,
> Justin
> 
> 
>

-- 
Peter Keller                                     Tel.: +44 (0)1223 353033
Global Phasing Ltd.,                             Fax.: +44 (0)1223 366889
Sheraton House,
Castle Park,
Cambridge CB3 0AX
United Kingdom


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]