Hello Jens,
Thank you for answering my 'beginner questions'.
I already thought that I cannot write to object to one file. I correct
it by creating new class SaveData with two attributes -the two objects,
I want to save.
SaveData dataToSave=new SaveData(workingDemosProject,mapPositions);
writer = new FileWriter(fileProject1);
org.exolab.castor.xml.Marshaller.marshal(dataToSave,
writer);
//reading:
SaveData
savedData=(SaveData)org.exolab.castor.xml.Unmarshaller.unmarshal(SaveDat
a.class,
new FileReader(fileOpen));
This is the new xml-file:
<?xml version="1.0" encoding="UTF-8" ?>
- <save-data>
- <proj>
<objectkind-name>Entity</objectkind-name>
- <entity-list xsi:type="java:Core.DemosEntity"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<objectkind-name>Entity</objectkind-name>
</entity-list>
</proj>
<graphic-data xsi:type="java:GUI.MainFrame$ImageAndPositionData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
<graphic-data xsi:type="java:GUI.MainFrame$ImageAndPositionData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</save-data>
This is the new exception, I'm getting while reading.
org.xml.sax.SAXException: unable to instantiate GUI.SaveData;
java.lang.InstantiationException: GUI.SaveData{file: [not available];
line: 2; column: 12}
What could cause the problem that GUI.SaveData cannot be instntiated?
The class is public and serializable.
Do I really have to make any Attribute public, If I want to save
it????It doesn't make any sense to me.
Maybe you can tell me which documentation I should read that I can solve
more problems by myself. I thought I read the most important
documentation of Castor but maybe it wasn't enought.
Cheers,
Katja
-----Urspr�ngliche Nachricht-----
Von: Jens Saade [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 3. M�rz 2004 15:22
An: [EMAIL PROTECTED]
Betreff: Re: [castor-dev] saving a java-project
Katja,
the XML file is not valid if its one file. You are marshalling objects
via the same writer into the same file, this results in two independant
xml-structures appended in one file:
-- file --
<?xml version="1.0" encoding="UTF-8"?>
<demos-project>
<objectkind-name>Entity</objectkind-name>
<entity-list xsi:type="java:Core.DemosEntity"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<objectkind-name>Entity</objectkind-name>
</entity-list>
</demos-project>
<?xml version="1.0" encoding="UTF-8"?>
<hash-map empty="false"/>
-- file --
... which is not valid XML. You either have to marshal into two
different files or implement a root object that encapsulates both the
DemosProject.class and the HashMap.
Furthermore you can't read from a mixed invalid XML file into two
different objects. That's why you get the
org.xml.sax.SAXException: Parsing Error : The processing instruction
target matching "[xX][mM][lL]" is not allowed.
Cheers,
Jens
Katja wrote:
>Well, let's try it step by step to solve my problems.
>This is how I write to the xml-file:
> writer = new FileWriter(fileProject1);
> org.exolab.castor.xml.Marshaller.marshal(workingDemosProject,
>writer);
> org.exolab.castor.xml.Marshaller.marshal(mapPositions, writer);
This
>is how I read from the xml-file:
> res.project=
>(DemosProject)org.exolab.castor.xml.Unmarshaller.unmarshal(DemosProject
>.
>class,
> new FileReader(fileOpen));
>
>res.graphicData=(HashMap)org.exolab.castor.xml.Unmarshaller.unmarshal(H
>a
>shMap.class,
> new FileReader(fileOpen));
>
>The saving works without exception but the xml-file doesn't look ok (I
>think). <?xml version="1.0" encoding="UTF-8"?>
><demos-project><objectkind-name>Entity</objectkind-name><entity-list
>xsi:type="java:Core.DemosEntity"
>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><objectkind-name>
E
>ntity</objectkind-name></entity-list></demos-project><?xml
version="1.0"
>encoding="UTF-8"?>
><hash-map empty="false"/>
>
>When I read, I get following exception:
>org.xml.sax.SAXException: Parsing Error : The processing instruction
>target matching "[xX][mM][lL]" is not allowed. Line : 2 Column : 233
>{file: [not available]; line: 2; column: 233}
>
>Here the structure of the two objects I want to save:
>1. workingDemosProject is of Type DemosProject, ist superclass
>DemosEntity(a) and has one Attribute of type DemosEntityList(b)
> DemosEntity(a) has three Attributes. Their type is a
>self-implemented class that extends a ArrayList .
> DemosEntityList(b) is self-implemented class that extends a
>ArrayList,too. 2. mapPositions is a Hashmap
>
>I hope these are good informations that you can help me.
>
>Cheers,
>Katja
>
>
>
>-----Urspr�ngliche Nachricht-----
>Von: Jens Saade [mailto:[EMAIL PROTECTED]
>Gesendet: Mittwoch, 3. M�rz 2004 11:19
>An: [EMAIL PROTECTED]
>Betreff: Re: [castor-dev] saving a java-project
>
>
>
>Hi Katja,
>
>people on the mailing list can better help you on specific problems you
>encounter. The best thing you can do is to describe each problem with
>reference to your code (java/xml/xsd, etc) and develop it step-by-step.
>Getting used to castor may take some time but in the end this will pay
>off. I'm using castor for lots of projects since a while (JDO and XML)
>and found the help on this list very useful. The more specific the
>questions you ask the more answers you'll get =)
>
>Jens
>
>Katja wrote:
>
>
>
>>Hi,
>>I'm trying to save my java-project to a xml-file and back. However my
>>objects within the project are structured very complicated. I have
>>sometime six level of superclasses or want to save a HashMap that
>>contains not basic-objects. I thought castor can do this but I'm
>>experiencing a lot of problems. Simple testing projects worked fine
>>with Castor. Can someone give me advices what important is to watch
for
>>
>>
>
>
>
>>or what kind of objects I cannot save? Or maybe Castor is not the
>>right
>>
>>
>
>
>
>>thing to use. I had found another class library that work very good
>>but
>>
>>
>
>
>
>>wasn't open-source.
>>Cheers,
>>Katja
>>
>>
>>
>>
>>
>>
>
>
>
--
PIRONET NDH AG
Jens Saade - Application Developer - Business Center Industry Maarweg
149-161, 50825 Cologne - Germany
Phone: +49 (0)221-770-1794 - Fax: +49 (0)221-770 1005
Mail to: [EMAIL PROTECTED] - http://www.pironet-ndh.com
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev