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
