[XML] Xml boom als objectenmodel gebruiken

Pagina: 1
Acties:

  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Ik ben bezig om een applicatie te schrijven om mijn DixX collectie te beheren. En ik gebruik dit om meer kennis van .Net te krijgen. Anywayz... Ik wil de data opslaan in Xml, en ik heb een schema (.xsd) die de structuur beschrijft. So far so good... Wat wil ik nu... Omdat ik geen al te moeilijk business model heb, leek het me makkelijker om mijn Xml structuur te gebruiken als objectenmodel. Wat dus betekent dat ik mbv een xmldom, een in memory database heb, die makkelijk te manipuleren is. Een fragment van mijn schema :

<xs:element name="Movie">
<xs:complexType>
<xs:sequence>
<xs:element ref="Name" />
<xs:element ref="ReleaseYear" />
<xs:element name="Rating" type="xs:unsignedInt" minOccurs="1" maxOccurs="1" />
<xs:element name="PersonalRating" type="xs:unsignedInt" minOccurs="0" maxOccurs="1" />
<xs:element ref="VideoFormat" />
</xs:sequence>
</xs:complexType>
</xs:element>

Dit stukje beschrijft de "properties" van het object "Movie". Ik wil dus niet van ieder "object" wat in mijn schema staat, nog eens een class maken in. Want dat lijkt erg op dubbel werk, zodra ik dan een aanpassing maak op mijn schema moet ik mijn class ook weer aan gaan passen. Ik wil dus op een of andere manier aan kunnen geven dat Movie, gekoppeld is aan de Interface IMovie. Wat dus betekent als ik een instantie van Movie heb in mijn XML boom, ik deze kan aanspreken met via de interface IMovie.

Iemand suggesties? Ik weet dat er aardig wat XML kennis is op Got (bijv mbravenboer ;) )

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik neem aan dat het gaat over Java? Ik zou die objecten eerst vanuit XML naar het geheugen plaatsen en dan heb je eigelijk niets meer met XML te maken. Dan is het gewoon normaal proggen in java. Je moet dus alleen die objecten even in het geheugen krijgen.

  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Oh sorry nee... het is .Net met C#... maar alle suggesties zijn welkom... Dit idee is in alle talen te bouwen...

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik wil dus niet van ieder "object" wat in mijn schema staat, nog eens een class maken in. Want dat lijkt erg op dubbel werk, zodra ik dan een aanpassing maak op mijn schema moet ik mijn class ook weer aan gaan passen.
dat kun je beter juist wel doen. direct met xml werken is niet bepaald handig.

  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Op zaterdag 06 april 2002 14:13 schreef marcusk het volgende:

[..]

dat kun je beter juist wel doen. direct met xml werken is niet bepaald handig.
In .Net hoef je niet echt direct te werken met xml... Er zit een dun schilletje om de xmldom heen om makkelijker met xml te werken...

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

maar waar ga je de logica plaatsen, als je alleen wilt werken met XML ipv class files?

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Mischien hier wat interssants?

Verwijderd

Op zondag 07 april 2002 11:07 schreef stylee het volgende:
Mischien hier wat interssants?
deze moet je hebben denk ik: http://www.dotnetjunkies.com/quickstart/howto/doc/Xml%5CDOMInterfaceXmlDocument.aspx

  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Op zondag 07 april 2002 11:03 schreef Alarmnummer het volgende:
maar waar ga je de logica plaatsen, als je alleen wilt werken met XML ipv class files?
Heb je gelijk in maar ik wil mijn gegevens dus alleen maar in de XML bewaren, en de "objecten" in het schema (Movie in het voorbeeld hierboven) koppelen aan een Interface, en daarvan inheriten en de logica in de concrete classes stoppen...

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Niemand ideeen meer?

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Dit noemt met ook wel "XML data-binding". Meestal worden er bij XML data-binding klassen gegenereerd bij een schema in een XML schema taal zoals DTD of W3C's XML Schema. Eventueel kan je de zaak soms nog wat sturen met behulp van een mapping waarin je aangeeft hoe de XML structuur vertaalt moet worden in klassen.

Voor het Java Platform zijn er al vele XML data-binding oplossingen, waarbij JAXB de standaard implementatie is:
http://java.sun.com/xml/jaxb/

Ik ben niet bekend met XML data-binding oplossingen voor .NET/C#, maar kan je nog wel helpen met een paar linkjes:

Documentatie die je zeker moet lezen:
XML Data Binding Resources
Programming to XML

Castor: een implementatie voor Java (alternatief voor JAXB)
http://castor.exolab.org/

Het is niet veel werk om de Java XML data-binding oplossingen te porten naar C#/.NET dus hoogst waarschijnlijk zullen implementaties binnen de korste tijd als paddestoelen uit de grond oprijzen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 11:48

OMX2000

By any means necessary...

Topicstarter
Mbravenboer for President... again and again...

Dè developers podcast in je moerstaal : CodeKlets Podcast

Pagina: 1