Now I reduced my application to only the first few XML tags. Now the mapping
file works, but now I get an additional attribute in the root tag (ORDERS05)
called "valid". How can I avoid this ? I still don't understand why it works
with only a few xml tags.
Here is the result:
<?xml version="1.0" encoding="iso-8859-1"?>
<ORDERS05 valid="true">
<IDOC BLABLA="1"/>
</ORDERS05>
BR,
Konni
PS: The original code is also at jira.codehaus.org.
Werner Guttmann wrote:
>
> Okay, that makes it more complete to understand what you are trying to
> achieve. With regards to your question, yes, this should be possible out
> of the box.
>
> My working assumption is that your mapping file is not being picked up,
> for whatever reason. The fact that you are seeing one of the info
> messages does not necessarily indicate that Castor XML uses a descriptor
> as derived from the mapping.
>
> Can you please create a Jira issue and somebody will be having a look ?
> When doing so, can you please follow the guidelines at
>
> http://castor.org/how-to-submit-an-xml-bug.html
>
> Regards
> Werner
>
> Konni wrote:
>> Yes, I used castor's code generator to generate the Java classes. Maybe I
>> was
>> misunderstanding something, since I'm new to castor. I'll explain what I
>> want to achieve.
>>
>> We want to do EDI (especially purchase orders) with several suppliers.
>> Most
>> of them have SAP software. So I created a general XML schema definition
>> (XSD) for this message from which I generated the Java classes. But not
>> all
>> of the suppliers will follow correctly this guideline. So for them I
>> wanted
>> to use an individual mapping file.
>>
>> Isn't this possible ?
>>
>> Best regards,
>> Konni
>>
>>
>>
>> Werner Guttmann wrote:
>>> Hold on, did you use Castor's code generator to generate Java classes
>>> from your XML schema ? If yes, why do you want to use a mapping file at
>>> all ?
>>>
>>> Werner
>>>
>>> Konni wrote:
>>>> The fully qualified class name "bestellung.IDOC" is needed here.
>>>> Otherwise I
>>>> get a MappingException (Class not found...). Since the IDOC class
>>>> extends
>>>> the SAP_IDOC class, I also tried the following:
>>>>
>>>> <class name="bestellung.SAP_IDOC">
>>>> or
>>>> <class name="bestellung.IDOC" extends="bestellung.SAP_IDOC">
>>>>
>>>> Both have no effect. The getter and setter methods are in the SAP_IDOC
>>>> class.
>>>> I'm using castor version 1.1.2.1.
>>>>
>>>> Here is a snippet of the corresponding XML schema. Maybe this helps.
>>>>
>>>> <xs:complexType name="root">
>>>> <xs:sequence>
>>>> <xs:element name="IDOC" type ="SAP_IDOC"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>>
>>>> <xs:complexType name="SAP_IDOC">
>>>> <xs:sequence>
>>>> <xs:element name="EDI_DC40" type="header" minOccurs="0"/>
>>>> <xs:element name="E1EDK01" type="K01"/>
>>>> <xs:element name="E1EDKA1" type="KA1" maxOccurs="3"/>
>>>> <xs:element name="E1EDK02" type="K02"/>
>>>> <xs:element name="E1EDK35" type="K35" minOccurs="0"/>
>>>> <xs:element name="E1EDP01" type="P01" maxOccurs="unbounded"/>
>>>> </xs:sequence>
>>>> <xs:attribute name="BEGIN" type="xs:string" fixed="1"/>
>>>> </xs:complexType>
>>>>
>>>> Best regards,
>>>> Konni
>>>>
>>>>
>>>>
>>>>
>>>> Werner Guttmann wrote:
>>>>> Hi,
>>>>>
>>>>> very hard to tell, as looking at this, I cannot spot the obvious
>>>>> error.
>>>>> What about the fulyl qualified class name of the IDOC class ? If
>>>>> that#s
>>>>> wrong, Castor XML will use introspection, which might be what is
>>>>> happening ?
>>>>>
>>>>> Regards
>>>>> Werner
>>>>>
>>>>> PS What Castor version are you using ?
>>>>>
>>>>> Konni wrote:
>>>>>> I'm new to castor and I wanted to use a mapping file in order to
>>>>>> modify
>>>>>> my
>>>>>> xml-file in the marshalling process. But the mapping file has no
>>>>>> effect.
>>>>>>
>>>>>> Here is the mapping file (Mapping.xml):
>>>>>>
>>>>>> <?xml version="1.0" encoding="iso-8859-1"?>
>>>>>> <mapping>
>>>>>> <class name="bestellung.IDOC">
>>>>>> <map-to xml="IDOC"/>
>>>>>> <field name="BEGIN" type="string">
>>>>>> <bind-xml name="BLABLABLA" node="attribute" />
>>>>>> </field>
>>>>>> </class>
>>>>>> </mapping>
>>>>>>
>>>>>> Here is the beginning of the original xml file:
>>>>>>
>>>>>> <?xml version="1.0" encoding="iso-8859-1"?>
>>>>>> <ORDERS05>
>>>>>> <IDOC BEGIN="1">
>>>>>> <EDI_DC40 SEGMENT="1">
>>>>>> ...
>>>>>>
>>>>>> Here is my Java code:
>>>>>>
>>>>>> ...
>>>>>> FileWriter writer = new FileWriter("Testbestellung_neu.xml");
>>>>>> Marshaller marshaller = new Marshaller(writer);
>>>>>> Mapping mapping = new Mapping();
>>>>>> mapping.loadMapping(new
>>>>>> URL("file:/D:/Temp/XML/Mapping.xml"));
>>>>>> marshaller.setMapping(mapping);
>>>>>> marshaller.setEncoding("iso-8859-1");
>>>>>> marshaller.marshal(orders05);
>>>>>> writer.close();
>>>>>> ...
>>>>>>
>>>>>> I expected the IDOC segment after the marshalling process like the
>>>>>> following:
>>>>>>
>>>>>> <IDOC BLABLABLA="1">
>>>>>>
>>>>>> The mapping file is in the classpath. When I call the program, there
>>>>>> is
>>>>>> the
>>>>>> INFO message "Loading mapping descriptors from ...". So the file will
>>>>>> be
>>>>>> found. And there are no error messages.
>>>>>>
>>>>>> What am I doing wrong ?
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> 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
>
>
>
--
View this message in context:
http://www.nabble.com/Problem-with-mapping-file-tf4594474.html#a13150081
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email