Thanks for your reply. I am facing one more problem here.
Scenario 1:
I have one sample xml, for example test.xml. Using Unmarshalling concept, i
filled the java objects based on given sample xml. Again I convert into
another xml like test2.xml through marshalling. Its working fine from
calling main method. If i call in some other method (Like Junit). Its not
working for me. Please find the following code.
FileReader in = new FileReader("test.xml");
Unmarshaller h_unmarshaller = new
Unmarshaller(RootDocument.class);
h_unmarshaller.setValidation(false);
RootDocument rdc = (RootDocument) h_unmarshaller.unmarshal(in);
System.out.println("DONE Unmarshalling\n\n");
File file = new File("test2.xml");
Writer writer = new FileWriter(file);
Marshaller marsh = new Marshaller(writer);
marsh.setNamespaceMapping("scp",
"http://www.demo.com/ICT/XML/student/ABD");
marsh.setNamespaceMapping("gen",
"http://www.demo.com/ICT/XML/student/XYZ");
marsh.marshal(rdc);
System.out.println("DONE Marshalling");
>From main method its working. I am getting like this
(This is sample only.But format is correct.)
<abc:RootDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xyz="http://www.demo.com/ICT/XML/Student/General"
xmlns:abc="http://www.demo.com/ICT/XML/Student/ABC">
<xyz:header>
<xyz:school>
<xyz:schoolid>123</gen:schoolid>
<xyz:schoolname>ABCDD</gen:schoolname>
</xyz:school>
</xyz:header>
<abc:footer>
<abc:result abc:studNr="999">
<abc:studType>GHJJ</scp:studType>
</abc:result>
</abc:footer>
</abc:RootDocument>
By using junit, i am getting like this
<?xml version="1.0" encoding="UTF-8"?>
<root-document valid="true" valid="true"
xmlns:abd="http://www.demo.com/ICT/XML/student/ABD"
xmlns:xyz="http://www.demo.com/ICT/XML/student/XYZ">
<student valid="true" valid="true">
<marks valid="true" valid="true" />
<subject valid="true" valid="true">
<eng></eng>
<tam>GGG</tam>
</subject>
</student>
</root-document>
Scenario 2:
In the same way, I have one xsd file. Through castor, i generated java
objects and filled those objects (via code) based on given sample xml. After
that i used like this
File file = new File("test2.xml");
Writer writer = new FileWriter(file);
Marshaller marsh = new Marshaller(writer);
marsh.setNamespaceMapping("scp",
"http://www.demo.com/ICT/XML/student/ABD");
marsh.setNamespaceMapping("gen",
"http://www.demo.com/ICT/XML/student/XYZ");
marsh.marshal(rdc);
System.out.println("DONE Marshalling");
But i am getting the same xml
<?xml version="1.0" encoding="UTF-8"?>
<root-document valid="true" valid="true"
xmlns:abd="http://www.demo.com/ICT/XML/student/ABD"
xmlns:xyz="http://www.demo.com/ICT/XML/student/XYZ">
<student valid="true" valid="true">
<marks valid="true" valid="true" />
<subject valid="true" valid="true">
<eng></eng>
<tam>GGG</tam>
</student>
</student>
</root-document>
Note :I am using castor 1.3 and jdk1.5. I didnt use any mapping file. When
generating java objects from xsd, each file we have one validate method like
this. It always return true. Is it correct?
public boolean isValid(
) {
try {
validate();
} catch (org.exolab.castor.xml.ValidationException vex) {
return false;
}
return true;
}
public void marshal(
final java.io.Writer out)
throws org.exolab.castor.xml.MarshalException,
org.exolab.castor.xml.ValidationException {
org.exolab.castor.xml.Marshaller.marshal(this, out);
}
public static packagename.student unmarshal(
final java.io.Reader reader)
throws org.exolab.castor.xml.MarshalException,
org.exolab.castor.xml.ValidationException {
return (packagename.student)
org.exolab.castor.xml.Unmarshaller.unmarshal(packagename.student.class,
reader);
}
please do needful help. Thanks in advance.
Werner Guttmann-6 wrote:
>
> Hi,
>
> On 09.03.2011 18:01, rag007 wrote:
>>
>> Thanks for your reply.
>>
>> This is the sample xml i need to generate
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <abc:RootDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:xyz="http://www.demo.com/ICT/XML/Student/General"
>> xmlns:abc="http://www.demo.com/ICT/XML/Student/ABC"
>> xmlns="http://www.demo.com/Student/ABC"
>> xsi:schemaLocation="http://www.demo.com/ICT/XML/Student/General
>> sample1.xsd
>> http://www.demo.com/ICT/XML/Student/ABC sample2.xsd">
>> <xyz:header>
>> <xyz:school>
>> <xyz:schoolid>123</gen:schoolid>
>> <xyz:schoolname>ABCDD</gen:schoolname>
>> </xyz:school>
>> </xyz:header>
>> <abc:footer>
>> <abc:result abc:studNr="999">
>> <abc:studType>GHJJ</scp:studType>
>> </abc:result>
>> </abc:footer>
>> </abc:RootDocument>
>>
>>
>> But, Through castor i am getting XML like this
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <RootDocument xmlns="http://www.demo.com/ICT/XML/Student/ABC">
>> <ns1:header xmlns:ns1="http://www.demo.com/ICT/XML/Student/General">
>> <ns1:school>
>> <ns1:schoolid>123</ns1:schoolid>
>> <ns1:schoolname>ABCDD</ns1:schoolname>
>> </ns1:school>
>> </ns1:header>
>> <footer>
>> <result xmlns:ns2="http://www.demo.com/ICT/XML/Student/ABC"
>> ns2:studNr="999">
>> <ns2:studType>GHJJ</ns2:studType>
>> </result>
>> </footer>
>> </RootDocument>
>>
>>
>> Please clarify this. I am little confused. I want to know whether both
>> xml
>> is same or not?
> Technically speaking, namespace prefixes are not really relevant in an
> XML document instance. But if you really, really need to use a
> particular namespace prefix, please have a look at the
>
> Marshaller.setNamespaceMapping()
>
> method, which allows you to assign your own (custom) namepace prefixes
> to given namespaces.
>
> Regards
> Werner
>
>>
>> How to give custom prefix in the XML element?
>>
>> Thanks in Advance.
>>
>>
>>
>>
>>
>>
>>
>>
>> Werner Guttmann-6 wrote:
>>>
>>> Hi,
>>>
>>> On 09.03.2011 17:12, rag007 wrote:
>>>>
>>>> Hi All,
>>>>
>>>> I am using castor in myapplication. I am new to this. I have one doubt
>>>> please clarify as soon as possible.
>>>>
>>>> I have one xsd file through that i generated java files. Not an issue.
>>>> Its
>>>> ok for me. My question, is it possible to get mapping file along with
>>>> that?
>>> Why would you need a mapping file at all when you generate Java sources
>>> from an XML schema. During code generation, Castor generates Java POJOs
>>> AND descriptor classes, which are an optimized (internal) representation
>>> of the XML to object mapping.
>>>
>>>> I used gen-mapping command but its not working for me. I am using
>>>> castor
>>>> 1.3. Because I need to use custom namespace prefix in my xml.
>>> Where's the issue. If your XML schema has correct namespace definitions,
>>> Castor will use the right namespace URIs/prefixes for your XML.
>>>>
>>>> Kindly help me asap.
>>>>
>>>> Thanks in advance.
>>> Kind Regards
>>> Werner Guttmann
>>>
>>> ---------------------------------------------------------------------
>>> 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://old.nabble.com/Castor-Mapping-File-Generation-Problem-tp31107774p31151239.html
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email