[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-dev
Subject:    Re: [jira] Created: (XMLBEANS-248) Cannot parse/validate xml-fragments that use default namespace
From:       "Edward Frederick" <epfrederick () gmail ! com>
Date:       2006-02-23 18:32:15
Message-ID: 8492435f0602231032w76d40fe2t34f908fc5255c84e () mail ! gmail ! com
[Download RAW message or body]

The problem is that namespace qualifications are scoped for the
element as well as its contents. When you specify the default
namespace in your second example, you're putting the xml-fragment into
the http://common.toolkit/bean namespace.

In other words, your second example is really equivalent to:

> <bean:xml-fragment xmlns:bean="http://common.toolkit/bean">
> <bean:field1>value</bean:field1>
> <bean:field2>value</bean:field2>
> </bean:xml-fragment>

How are you going to get a workaround? I'm not sure. It would be
easier for you if the contents of the xml-fragment was a single
element, then you could just apply your namespace there instead.

One thing you could try is creating an XmlOptions object and using one
of the synthetic element or namespace substitution tricks and passing
it along to parse (i.e. figure out how to swap in a non-qualified
xml-fragment qname for your namespace-qualified xml-fragment qname).

Cheers,

Ed

On 2/23/06, Mark Cohen (JIRA) <xmlbeans-dev@xml.apache.org> wrote:
> Cannot parse/validate xml-fragments that use default namespace
> --------------------------------------------------------------
> 
> Key: XMLBEANS-248
> URL: http://issues.apache.org/jira/browse/XMLBEANS-248
> Project: XMLBeans
> Type: Bug
> Components: XmlObject
> Versions: Version 1
> Environment: Win2K, Java 1.4
> Reporter: Mark Cohen
> Fix For: Version 1
> 
> 
> I recently ran into a problem with XMLBeans 1.0.2 parsing and validating \
> XmlObjects.  Here's the scenario: 
> I have a simple XML schema which I then turned into XMLBeans using the \
> org.apache.xmlbeans.impl.tool.XMLBean class.  For the sake of discussion, the \
> namespace for the schema is http://common.toolkit/bean, and the package for the \
> generated beans is toolkit.common.bean. 
> Next, I want to convert an XML fragment to an XMLBean.  (I know, ideally there \
> wouldn't be XML fragments, but there's not much I can do about it for now.)  If I \
> have something like the following... (Please ignore any obvious syntax errors -- \
> I'm re-typing this.) 
> <xml-fragment xmlns:bean="http://common.toolkit/bean">
> <bean:field1>value</bean:field1>
> <bean:field2>value</bean:field2>
> </xml-fragment>
> 
> ... and I run it through a parse and a validation...
> 
> MyClass myObject = MyClass.Factory.parse(xml);
> myObject.validate();
> 
> ... everything works fine.  If, however, I use the following XML instead...
> 
> <xml-fragment xmlns="http://common.toolkit/bean">
> <field1>value</field1>
> <field2>value</field2>
> </xml-fragment>
> 
> ... the validation fails.  The error is along the lines of:
> 
> Message: Expected element text-
> field1@http://common.toolkit/bean instead of \
> xml-fragment@http://common.toolkit/bean here Location of invalid XML: [my XML \
> fragment repeated here] 
> Thoughts/ideas?  Thanks in advance!
> 
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators:
> http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
> For additional commands, e-mail: dev-help@xmlbeans.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: dev-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic