Hi Duane, Thanks for your email. I should clarify that what I posted was only a fragment of the entire XSD schema, containing only the parts pertaining to my question. If I had pasted the entire XSD, it would have been far too long and IMHO would have contributed to a high noise-to-signal ratio. Rest assured that what I sent to the customer was a full XML document, not a fragment. As I said in one of my previous posts, doing a simple textual replace of xml:mida to xml:midas allowed them to parse the document correctly.
To provide an update, Peter's suggestion of XmlOptions seems to be on the right track: it results in the XML fragments being displayed with the correct namespace prefix. But despite working on the XML fragments, it does not seem to work on the full XML document. The method is called "setSaveSuggestedPrefixes"... could it be refusing my "suggestion"? :( Justin ________________________________ From: Duane Zamrok <zam...@cubrc.org> To: "user@xmlbeans.apache.org" <user@xmlbeans.apache.org> Sent: Thu, July 8, 2010 2:48:26 PM Subject: RE: XMLBeans does not correctly propagate namespaces One thing that I noticed when reading your schema example and messages is that you have not defined a top level element. That is to say there is no acceptable root element of a message/document that has been defined to be of type “Model” or “FrotzModel”. This is why you are getting (xml-fragment) objects instead of (some-frontz-model-element) from the XMLBean objects, and may be why they are having problems parsing it. XML requires you to define both types and global instances (elements) of an XML message. If you did have an element defined in the schema, say <element name=”frotzModel” type=”midas:FrontzModel”/>, then you could use the XMLBean object of type FrontzModelDocument to create “frontzModel” messages and distribute them. I know my message may sound a bit cryptic, and it probably doesn’t have enough references to be that useful, but maybe somebody else will see what I’m talking about and explain it a bit better. Best Regards -Duane From:Justin Bailey [mailto:justinbaile...@yahoo.com] Sent: Thursday, July 08, 2010 12:13 PM To: user@xmlbeans.apache.org Subject: Re: XMLBeans does not correctly propagate namespaces Thanks Peter and Geir for your responses. I apologize for the confusion; it looks like my email randomly omitted crucial lines of XML in my message. Here is the missing XSD header, with parentheses instead of angle brackets. (We're not using example.com; I just did a search & replace for our company name.) (xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:midas="http://example.com/midas/" targetNamespace="http://example.com/midas/" elementFormDefault="qualified") The XML fragment got its header lopped off as well. I'll just paste the whole thing here again, with parentheses: (xml-fragment id="model id" xmlns:mida="http://example.com/midas/") (mida:Type)Statistical(/mida:Type) (/xml-fragment) It makes sense to me that the namespace is the important part and the prefix can be changed. I think the prefixes ought to be consistent for sanity's sake, but since our code works, I can tolerate it. It is only when we send it off as an XML message that the problem arises; the customer says that the XML fails to parse as intended. (I'm not sure what parsing library they're using, but it isn't XMLBeans.) We verified this by manually sending XML as text to the customer, and editing the prefixes by hand. The midas prefix works; the mida prefix does not. Peter, thank you for that FAQ link; I did not realize it applied to my problem. I will try the code snippet found there. Unfortunately, the link in the FAQ entry is dead, so I can't check the post for further information. Justin