I have checked this bug with the today's (2/18/02) CVS copy, and it is
still there. (http://bugzilla.exolab.org/show_bug.cgi?id=838)
I think the problem is the following:
In this section (lines 951-956) of Marshaller, there are two
descriptors: descriptor and classDesc. The former belongs to the current
or parent element while the latter is searched for a child element. The
current namespace decision is ill-structured because if the parent
element has a namespace defined, this code disregards the child's
namespace. It assumes they are the same. However, if the child element
is from another namespace it is not reflected here.
This is a similar example to the one submitted on the bug report.
<?xml version="1.0"?>
<x2:TwoThing xmlns:x1="bugtest1" xmlns:x2="bugtest2">
<x2:OneThing>HELLO</x2:OneThing>
</x2:TwoThing>
This is after the patch:
<?xml version="1.0"?>
<x2:TwoThing xmlns:x1="bugtest1" xmlns:x2="bugtest2">
<x1:OneThing>HELLO</x1:OneThing>
</x2:TwoThing>
The following is my patch for this problem. This problem also exists for
unbounded content models because each XXXXItem classes generated by
SourceGen assumes that XXXXItem classes are in the same namespace and
wrongfully set child elements' namespaces.
Ozgur
cvs diff Marshaller.java (in directory
C:\java\castor\castor\src\main\org\exolab\castor\xml\)
Index: Marshaller.java
===================================================================
RCS file:
/cvs/castor/castor/src/main/org/exolab/castor/xml/Marshaller.java,v
retrieving revision 1.93
diff -r1.93 Marshaller.java
951,952c951,952
< String nsPrefix = descriptor.getNameSpacePrefix();
< if (nsPrefix == null) nsPrefix =
classDesc.getNameSpacePrefix();
---
> String nsPrefix = classDesc.getNameSpacePrefix();
> if (nsPrefix == null) nsPrefix =
descriptor.getNameSpacePrefix();
954,955c954,955
< String nsURI = descriptor.getNameSpaceURI();
< if (nsURI == null) nsURI = classDesc.getNameSpaceURI();
---
> String nsURI = classDesc.getNameSpaceURI();
> if (nsURI == null) nsURI = descriptor.getNameSpaceURI();
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev