Am Di, den 06.07.2004 schrieb Dennis Sosnoski um 19:08:
> Somehow the elements you're trying to marshal appear to have a namespace 
> set. If you want to marshal them as though they were not in any 
> namespace you can modify your own version of the 
> DomElementMapper/DomMapperBase code to always use the nonamespace index 
> (which will always be 0) when writing elements and attributes out. You 
> can also go through the DOM tree and set the namespaces to null (I think 
> it's null for DOM - you should check what the DOM docs say).
> 

for testing purposes i printed out the namespace (uri/prefix) of all
elements which were passed to DomElementMapper.marshalElement... they
were all null. i think the problem is that with a "null" namespace
uri/prefix, DomElementMapper uses the namespace index -1, which causes
the error i described. 
looking at the method findNamespaceIndex in DomMapperBase, if my
uris/prefixes all would be "" (the empty string) i would get what i
wanted (index 0). 
i am not quite sure what to conclude. does the empty string mean no
namespace for DOM? or does the DomElementMapper misinterpret uri/prefix
set to null?

Tilman

> DomElementMapper/DomMapperBase should always accurately marshal out what 
> you supply. In the case of namespaces, this does require that the 
> namespaces are declared, either in the binding definition or in the 
> element (as attributes, which is how DOM represents namespace 
> declarations). It'd also be possible to automatically create a namespace 
> declaration attribute if one isn't found and the namespace isn't in the 
> binding definition; that might be a good thing for 
> DomElementMapper/DomMapperBase to do in the future. If you like this 
> idea, enter it as an enhancement request.
> 
>   - Dennis
> 
> Tilman Linden wrote:
> 
> >The namespace of my elements *is* undeclared. The elements i want to
> >marshal are created from a Document beginning with 
> >
> ><rootNode xmlns:xsi="..." xsi:noNamespaceSchemaLocation="....">
> >  ...
> >
> >So I just want the DomElementMapper to ignore Namespaces completely. Ok,
> >i think this is not a major issue for the JiBX development, so i do not
> >want to waste your time and try to build a workaround based on the
> >existing code.
> >
> >Tilman
> >
> >
> >Am Mo, den 05.07.2004 schrieb Dennis Sosnoski um 19:36:
> >  
> >
> >>It looks like the element you're trying to marshal has an undeclared 
> >>namespace. If the namespace for the element is declared in the binding 
> >>definition for a containing element it should be found automatically; 
> >>otherwise, you need to have the namespace declaration on the DOM Element 
> >>itself. DOM represents namespace declarations as attributes which have 
> >>to use a particular namespace - this is one of the ugly sides of DOM 
> >>(there are several!).
> >>
> >>If you think you have the namespace declared either in the binding 
> >>definition or in the DOM itself you can step through the code in 
> >>DomMapperBase.marshalElement prior to the exception where I'm trying to 
> >>find all the added namespaces. If it's declared in the binding 
> >>definition the call to findNamespaceIndex(prefix, uri); is supposed to 
> >>find it; otherwise, if it's an attribute of the DOM Element the loop the 
> >>follows should find it.
> >>
> >>This should really give a better error message - feel free to add a 
> >>low-priority enhancement request to the Jira just for the error message 
> >>alone.
> >>
> >>  - Dennis
> >>
> >>Tilman Linden wrote:
> >>
> >>    
> >>
> >>>hi,
> >>>
> >>>i wanted to use the DomElementMapper provided in the extras package.
> >>>unfortunately, i always get an ArrayIndexOutOfBoundException when
> >>>marshalling an Element... Seems to have something to do with namespace
> >>>indices, but could not figure out any details...
> >>>
> >>>i am using jibx beta3c now. any explanations / fixes / workarounds would
> >>>be appreciated!
> >>>
> >>>greetings,
> >>>
> >>>tilman
> >>>
> >>>
> >>>java.lang.ArrayIndexOutOfBoundsException: -1
> >>>       at
> >>>org.jibx.runtime.impl.StreamWriterBase.writePrefix(StreamWriterBase.java:242)
> >>>       at
> >>>org.jibx.runtime.impl.XMLWriterBase.startTagOpen(XMLWriterBase.java:191)
> >>>       at
> >>>org.jibx.extras.DomMapperBase.marshalElement(DomMapperBase.java:235)
> >>>       at
> >>>org.jibx.extras.DomElementMapper.marshal(DomElementMapper.java:129)
> >>>       at
> >>>de.fhrg.jobhandler.GridResource.JiBX_GridJobBinding_marshal_1_0(GridResource.java)
> >>>       at
> >>>de.fhrg.jobhandler.JiBX_MungeAdapter.JiBX_GridJobBinding_marshal_1_0()
> >>>       at
> >>>de.fhrg.jobhandler.GJobDLDocument.JiBX_GridJobBinding_marshal_1_0(GJobDLDocument.java)
> >>>       at
> >>>de.fhrg.jobhandler.GJobDLGridJob.JiBX_GridJobBinding_marshal_3_0(GJobDLGridJob.java)
> >>>       at
> >>>de.fhrg.jobhandler.JiBX_GridJobBindingGJobDLGridJob_access.marshal()
> >>>       at de.fhrg.jobhandler.GJobDLGridJob.marshal(GJobDLGridJob.java)
> >>>       at
> >>>org.jibx.runtime.impl.MarshallingContext.marshalRoot(MarshallingContext.java:919)
> >>>       at
> >>>org.jibx.runtime.impl.MarshallingContext.marshalDocument(MarshallingContext.java:967)
> >>>       at
> >>>de.fhrg.jobhandler.persistence.jibx.JiBX_GJobDLWriter.store(JiBX_GJobDLWriter.java:77)
> >>>       at
> >>>de.fhrg.jobhandler.persistence.GJobDLWriter.propertyChange(GJobDLWriter.java:70)
> >>>       at
> >>>java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:252)
> >>>       at
> >>>java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:299)
> >>>       at de.fhrg.jobhandler.GJobDLGridJob.run(GJobDLGridJob.java:265)
> >>>
> >>>
> >>>      
> >>>
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
> digital self defense, top technical experts, no vendor pitches, 
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> jibx-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jibx-users
> 



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
jibx-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to