hallo,
nehmen wir mal an, du willst einen kleinen server schreiben, der alle mitglieder anbietet. da du kompatibel bleiben willst,willst du die daten als xml ausgeben (kann man dann mit xslt nach html und sonstwas umbauen, also ganz nett).
normalerweise wuerdes du per hand das file generieren, der (java)client mueste dann per hand durchgehen und es auseinanderfickeln.
also schreibst du ein xsd (hast du auch glecih die sicherheit des validierens, die rundrumdeclaration lasse ich mal weg , xsd ist der namespace duer xsd vom w3c)
[..]
<xsd:comlexType name="User">
<xsd:sequence>
<xsd:element name="id" type="xsd:int/>
<xsd:element name="Name" type="xsd:string/>
<xsd:element name="email" "type=xsd:string"/>
<xsd:element name="comments" "type=xsd:int"/>
<xsd:element name="confirmDate" "type=xsd

ate"/>
</xsd:sequence>
</xsd:comlexType>
<xsd:complexType name="UserList">
<xsd:sequence>
<xsd:element name="user" type="user" minOccurs="0" maxOcuurs="unbounded"/>
<xsd:element name="lastUser" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Content" type="userList"/>
um das xml zu erstellen, reicht jetzt das xsd zu compiliernen und im code dann so oder aehnlich die liste zu erzeugen
[..]
JAXBContext context=JAXBContext.newInstance("packagename");
UserList list=ObjectFactory.newUserList();
User user=ObjectFactory.newUser();
user.setName("name");
user.setID(1);
.
.
.
list.getUser().add(user);
list.setLastUser(user.getID());
Marshaller m=context.createMarshaller();
m.marshal(list,[OutputStream | File | Documebt | ...]);
fuer fehler in source oder xsd hafte ich nicht, hier gibt es kein autocomplet *g*
um dann das xml zu unmarshallen geht es noch einfacher
JAXBContext context=JAXBContext.newInstance("packagename");
UnMarshaller m=context.createUnMarshaller();
UserList list(UserList)m.unmarshal([File | Document | InputStream | ...]);
im vergleich zu sax per hand ein echter fortschritt (stell dir das mal mit ein paar hundert objekten vor).
zudem kannst du (wenn du willst) immer (automatisch) gegen das xsd validieren, so das du mitbekommst wenn du falsche daten lesen oder schreiben willst.
tja, wozu ich das brauche:
- zum einen fuer die arbeit (ich habe das als standard fuer kommunikation ueber xml festgelegt)
- fuer zuhause (ich schreibe ein kleines spielchen und mache gerdae den datalayer)
- es kann nicht schaden, sich damit auszukennen (und wie man an meiner frage sah, kenn ich es auch noch nicht so gut (leider gehen keine sets aus komplexen typen mit xsd))
ps: da du admin bist, kann man die tesxtinputbox nicht breiter machen oder mit nem scroller versehen, der autotextumbruch nervt beim schreiben