Thanks. Werner
Pokidov Dmitriy wrote: > Ok, I created new bug: http://jira.codehaus.org/browse/CASTOR-2414 > > 2008/6/11 Werner Guttmann <[EMAIL PROTECTED]>: > >> Hi, >> >> If you think it is an issue, please create a new Jira issue at >> >> http://jira.codehaus.org/browse/CASTOR >> >> and attach all relevant files (domain classes, mapping file, XML schema, >> test case(s)). >> >> Werner >> >> >> >> Pokidov Dmitriy wrote: >>> Because early we use Apache digester for unmarshalling, but now we need >>> marshalling and we should rewrite digester rules to castor rules, we >> can'nt >>> change source code. >>> I think that this is a bug, because when I debug castor sources, I cannt >>> understand why elements in XMLFieldDescriptor have castor's namespace? >>> >>> 2008/6/11 Werner Guttmann <[EMAIL PROTECTED]>: >>> >>>> Hi, >>>> >>>> Before trying to address your question(s) one by one, I have got a >>>> question. Given you have an XML schema instance that you want to use for >>>> validation, how come you are not generating the domain and descriptor >>>> classes from the XML schema ? This way, you'd get validation for free. >>>> >>>> Regards >>>> Werner >>>> >>>> Pokidov Dmitriy wrote: >>>>> Hello, all >>>>> >>>>> I have simple example that illustrate problem: >>>>> >>>>> >>>>> >>>>> Mapping file: >>>>> >>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>> >>>>> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" >> " >>>>> http://castor.org/mapping.dtd"> >>>>> >>>>> >>>>> >>>>> <mapping> >>>>> >>>>> <class name="test2.OrderItem"> >>>>> >>>>> <map-to xml="orderitem" ns-uri=" >>>>> http://www.otr.ru/sufd/document/desc/"/> >>>>> >>>>> >>>>> >>>>> <field name="orderItem" type="test2.OrderItem"> >>>>> >>>>> <bind-xml name="orderitem" >>>>> node="element"/> >>>>> >>>>> </field> >>>>> >>>>> >>>>> >>>>> <field name="id" type="string"> >>>>> >>>>> <bind-xml name="identity" >>>>> node="attribute"/> >>>>> >>>>> </field> >>>>> >>>>> >>>>> >>>>> <field name="orderQuantity" type="integer"> >>>>> >>>>> <bind-xml name="quantity" >>>>> node="element"/> >>>>> >>>>> </field> >>>>> >>>>> </class> >>>>> >>>>> </mapping> >>>>> >>>>> >>>>> >>>>> Schema file: >>>>> >>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>> >>>>> <xs:schema attributeFormDefault="unqualified" >>>> elementFormDefault="qualified" >>>>> targetNamespace="http://jopa.org" xmlns:xs=" >>>> http://www.w3.org/2001/XMLSchema >>>>> "> >>>>> >>>>> <xs:element name="item" type="itemType"/> >>>>> >>>>> <xs:complexType name="itemType"> >>>>> >>>>> <xs:sequence> >>>>> >>>>> <xs:element type="xs:string" name="quantity"/> >>>>> >>>>> </xs:sequence> >>>>> >>>>> <xs:attribute type="xs:string" name="identity"/> >>>>> >>>>> </xs:complexType> >>>>> >>>>> </xs:schema> >>>>> >>>>> >>>>> >>>>> And xml that I want to unmarshall: >>>>> >>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>> >>>>> <orderitem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>> >>>>> xsi:schemaLocation=" >>>>> http://www.otr.ru/sufd/document/desc/ >>>>> http://otr-sufd/xmlschema/docschema.xsd" >>>>> >>>>> xmlns="http://www.otr.ru/sufd/document/desc/" >>>>> identity="12"> >>>>> >>>>> <quantity>100</quantity> >>>>> >>>>> <orderitem >>>>> identity="13"><quantity>100</quantity></orderitem> >>>>> >>>>> </orderitem> >>>>> >>>>> >>>>> >>>>> And class OrderItem: >>>>> >>>>> public class OrderItem { >>>>> >>>>> private String id; >>>>> >>>>> private Integer orderQuantity; >>>>> >>>>> private OrderItem orderItem; >>>>> >>>>> >>>>> >>>>> public OrderItem getOrderItem() { >>>>> >>>>> return orderItem; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public void setOrderItem(OrderItem orderItem) { >>>>> >>>>> this.orderItem = orderItem; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public OrderItem() { >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public OrderItem(String id, Integer orderQuantity) { >>>>> >>>>> this.id = id; >>>>> >>>>> this.orderQuantity = orderQuantity; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public String getId() { >>>>> >>>>> return id; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public void setId(String id) { >>>>> >>>>> this.id = id; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public Integer getOrderQuantity() { >>>>> >>>>> return orderQuantity; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> public void setOrderQuantity(Integer orderQuantity) { >>>>> >>>>> this.orderQuantity = orderQuantity; >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> And when I unmarshall xml, I get exception: >>>>> >>>>> java.lang.NoClassDefFoundError: test2/Orderitem (wrong name: >>>>> test2/OrderItem) >>>>> >>>>> at java.lang.ClassLoader.defineClass1(Native Method) >>>>> >>>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:620) >>>>> >>>>> at >>>>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) >>>>> >>>>> at >>>> java.net.URLClassLoader.defineClass(URLClassLoader.java:260) >>>>> at >> java.net.URLClassLoader.access$100(URLClassLoader.java:56) >>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195) >>>>> >>>>> at java.security.AccessController.doPrivileged(Native >> Method) >>>>> at >> java.net.URLClassLoader.findClass(URLClassLoader.java:188) >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306) >>>>> >>>>> at >>>> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251) >>>>> >>>>> at >>>>> >> org.exolab.castor.xml.util.resolvers.ResolveHelpers.loadClass(ResolveHelpers.java:140) >>>>> at >>>>> >> org.exolab.castor.xml.util.resolvers.ByIntrospection.internalResolve(ByIntrospection.java:87) >>>>> at >>>>> >> org.exolab.castor.xml.util.resolvers.AbstractResolverClassCommand.resolve(AbstractResolverClassCommand.java:55) >>>>> at >>>>> >> org.exolab.castor.xml.util.resolvers.CastorXMLStrategy.getDescriptor(CastorXMLStrategy.java:137) >>>>> at >>>>> >> org.exolab.castor.xml.util.resolvers.CastorXMLStrategy.resolveClass(CastorXMLStrategy.java:82) >>>>> at >>>>> >> org.exolab.castor.xml.util.XMLClassDescriptorResolverImpl.resolve(XMLClassDescriptorResolverImpl.java:241) >>>>> at >>>>> >> org.exolab.castor.xml.MarshalFramework.searchInheritance(MarshalFramework.java:502) >>>>> at >>>>> >> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1865) >>>>> at >>>>> >> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1418) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:878) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) >>>>> at >>>>> >> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) >>>>> at >>>>> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:715) >>>>> >>>>> at >>>>> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:616) >>>>> >>>>> at Test2.testUnmarshalItem(Test2.java:61) >>>>> >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>> Method) >>>>> at >>>>> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>> at >>>>> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>> at >>>>> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) >>>>> >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>> Method) >>>>> at >>>>> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>> at >>>>> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>> at >>>>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) >>>>> >>>>> >>>>> >>>>> When I set ns-prefix and write xml with prefix, all work correctly, but >> I >>>>> need xml without prefixes. Please help me. >>>>> >>>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe from this list, please visit: >>>> >>>> http://xircles.codehaus.org/manage_email >>>> >>>> >>>> >>> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> >> > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

