SIDE EFFECTS ROOT CAUSE:
I still had not included the xbeans_xpath.jar file in the classpath. Adding
that and now my XPath and XQuery efforts worked as expected.
XMLCURSOR SIDE EFFECTS SOLUTION:
A careful re-examination of the JavaDocs revealed the following API call:
cursor.insertAttributeWithValue("level","http://www.unizenconsulting.com/MustReadMessages",level);
This produced the expected results, yeah!
But I am still curious about why the XMLBeans seem to ignore the
attributeFormDefault="unqualified" as defined in the XSchema itself. Does this
modifier only apply to the Schema file itself? I noticed within an XML editor
that without this the ref="type_name" needed to have a qualified name as in:
ref="mrm:type_name".
An answer to this would be appreciated as it will help me avoid some nasty
pitfalls later on in my project.
Again, thanks in advance,
John
-----
In the Family He provides,
John Dugaw
----- Original Message -----
From: John Dugaw [mailto:[EMAIL PROTECTED]
Sent: 1/30/2006 9:54:40 PM
To: [email protected]
Subject: Namespace Qualified Attributes?
> All,
>
> I have run into a problem wherein I have forced the use of all tags in an XML
> file to be namespace qualified, a desired effect. Unfortunately, this also
> means that all my attributes also must be fully qualified. This is not the
> behavior I expected, and I believe I have run into several side effects. The
> information attached below I hope will be useful.
>
> The XSD:
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.unizenconsulting.com/MustReadMessages"
> xmlns="http://www.unizenconsulting.com/MustReadMessages"
> attributeFormDefault="unqualified"
> elementFormDefault="qualified">
>
> I would expect this to give me an XMLBeans library that would require fully
> qualifed tags and unqualified attributes. Yet I am finding myself needing to
> implement my XML files as in the following:
>
> <mrm:messageGroup
> xmlns:mrm="http://www.unizenconsulting.com/MustReadMessages"
> mrm:level="warn">
>
> If I exclude the atrribute namespace qualifier I get validation errors about
> the "level" attribute not permitted. If I exclude it I get an error about
> "level" being a required attribute. If I define it as "mrm:level" then
> everything works, but I cannot get XPath and XQuery to work properly (NOTE: I
> am using 8.1.1 per the docs at xmlbeans.apache.org)
>
> Unfortunately, when using the XmlCursor object trying to add the attribute as
> in the following:
>
> String namespaceURI = cursor.namespaceForPrefix("mrm");
> cursor.beginElement("message",namespaceURI);
> cursor.insertAttributeWithValue("level",level);
>
> This results in an error, and trying to use the following line:
>
> cursor.insertAttributeWithValue("mrm:level",level);
>
> also results in a runtime error.
>
> Now the results created when using the XMLBeans 2.0 generated classes and API
> result in XML with the "mrm" namespace prefix to both the XML tags and the
> attributes, effectively the same result I am required to provide for things
> to work smoothly.
>
> I am also using an xsdconfig file but it basically maps the classes to
> com.unizenconsulting.mustReadMessages namespace within Java.
>
> POSSIBLE SIDE EFFECT: I am also having difficulty with Saxon XPATH and XQuery
> but firmly believe the namespace qualifiers to attributes is the root cause
> e.g.:
>
> String query = "declare namespace "
> +"mrm='http://www.unizenconsulting.com/MustReadMessages'; "
> +" $this/mrm:messageGroup/mrm:message";
>
> This strikes me as exceedingly odd. What have I missed? I am sure it is
> something right in front of me. I did read the attribute comments from
> January '06 through September '06 which pointed me to my need for the
> 'elementFormDefault="qualified"' definition is the XSD itself before using
> scomp. My thanks to Mr. Lawrence on that one!
>
> Regards,
>
> John Dugaw
> Denver, CO
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]