[Schema] Wanneer kun je W3C Schema links laten liggen?

Pagina: 1
Acties:

  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 15:23
Onder andere in dit topic (http://gathering.tweakers.net/forum/list_messages/517596) wordt aangegeven dat W3C XML Schema niet echt geweldig is.

Op dit moment ben ik bezig met het automatsich laten genereren van een XML-bestand. Ik heb een Schema bestand gemaakt volgens de W3C standaard voor validatie van dit XML-bestand.
Een volgende stap is dat het XML-bestand mbv XSLT word omgezet in XMI, zodat er uiteindelijk UML van gemaakt kan worden (hmm, ik hoop dat iedereen begrijpt wat ik bedoel, maar ik weet even geen betere manier om het uit te leggen).

Nu vroeg ik me echter af of W3C XML Schema wel de beste oplossing is (of misschien is het de enige ?). Ik heb al flink wat artikelen gelezen op het web, maar ik begrijp nog niet echt of ik wel een keus heb waar het de keuze voor een Schema taal betreft.

Kan iemand mij helpen bij het vinden van een antwoord op bovenstaande vraag ?

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

RELAX NG wordt vaak gezien als beter dan XML Schema.

Rustacean


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

Alarmnummer

-= Tja =-

Ik werk zelf met Schema en ik heb er eerlijk gezegd geen problemen mee. In het begin is het even uitzoeken, maar een goed boek (professional XML van wrox bv) wil enorm helpen. Ik heb begrepen dat RelaxNG krachtiger is, maar tot op heden heb ik het niet nodig gehad.

Ik moet er ook eerlijk bij vertellen dat XML bij mij maar een klein onderdeel is van wat ik doe.

[edit]
En wat maakt het uit als je eerst schema kiest, en misschien daarna over wil gaan op een andere validatie techniek?? Dat mag toch niet al te veel problemen opleveren imho. (Tenzij je natuurlijk direct transformaties op de schema bestanden uitvoert)

[ Voor 27% gewijzigd door Alarmnummer op 21-11-2003 16:15 ]


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 15:23
@manuzhai:
dat heb ik inmiddels ook door
maar kan ik het in mijn situatie wel gebruiken ?

Daarnaast heb ik gezien dat RELAX NG word gespecificeerd met een syntax die lijkt op XML, maar heb ik ook af en toe gelezen dat er een andere syntax mogelijk is. Klopt dit ? En zo ja, waar kan ik er meer over lezen, want ik heb er nog niet specifiek iets over gevonden.

[ Voor 4% gewijzigd door Pieter.txt op 21-11-2003 16:16 ]

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


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

Alarmnummer

-= Tja =-

Pieter.txt schreef op 21 november 2003 @ 16:15:
En zo ja, waar kan ik er meer over lezen, want ik heb er nog niet specifiek iets over gevonden.
In professional XML van Wrox staat een stuk over RelaxNG (als ik het me goed herinner). Het boek was voor mij een lichtpuntje in de XML duisternis (zoveel acroniemen pffff).

  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 15:23
Bij bol worden twee boeken genoemd onder die titel. Welke bedoel je ?

Professional XML
Jon Duckett | Paperback | Wrox Press | 2001 | € 55,99 | meer...

Professional XML
Stephen F. Mohr | Paperback | Wrox Press | 2000 | € 56,99 | meer...

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Pieter.txt: dat heb ik inmiddels ook door, maar kan ik [RELAX NG] in mijn situatie wel gebruiken ?
Dat is inderdaad nog maar de vraag.

Als XML schema taal in het algemeen is RELAX NG inderdaad, bewijsbaar, krachtiger en, subjectief maar algemeen geaccepteerd, duidelijker dan W3C XML Schema. Het doorbladeren van de RELAX NG tutorial zal dit al snel duidelijk maken.

W3C XML Schema richt zich echter nadrukkelijk op typering en een type systeem met klassen en inheritance. Ondanks dit doel sluiten de gebruikte constructies niet goed aan op de type systemen die gebruikt worden in talen als Java en C#. Hierover kan je meer lezen in een artikel over Xen en een artikel op xml.com. Toch is W3C XML Schema als je een mapping wilt van een XML taal definitie naar klasse structuren wellicht de enige keuze. Data binding tools die zo'n mapping genereren zijn ook meestal gebaseerd op W3C XML Schema.
Daarnaast heb ik gezien dat RELAX NG word gespecificeerd met een syntax die lijkt op XML
De RELAX NG syntax is XML syntax.
maar heb ik ook af en toe gelezen dat er een andere syntax mogelijk is. Klopt dit ? En zo ja, waar kan ik er meer over lezen, want ik heb er nog niet specifiek iets over gevonden.
Ja dat klopt: dat is de zogenaamde "compact syntax". De specificatie en een tutorial kan je vinden op: http://www.relaxng.org/

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


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 15:23
Ik heb deze vraag ook gesteld in de discussiegroepen van Google en ben uiteindelijk tot een keuze gekomen. Voor toekomstige vragen over dit onderwerp, leek het me nuttig mijn overwegingen te posten. Originele post is te vinden in comp.text.xml met als titel "Motivation for using either Relax NG or W3C XML Schema".
For future reference I want to conclude this discussion with my choice
and the reasons I have for it.
First I'm going for W3C XML Schema (WXS). Well, now that is out there
I will state my reasons.

- with the coming of XSLT 2.0 (which support schemas and not just data
types !) I think WXS has a juge advantage. Even though XSLT 2 should
support other languages too, in a short email discussion Michael Kay
(the author of the document on XSLT 2 on w3.org) stated that XSLT 2
has only been tested with WXS and he did not know if other languages
will be tested too. Even though I do not know if I will need to
combine XSLT 2 and XML Schema (XSLT 2 can function without schemas), I
do not want to restrict myself.
- user and vendor support is much larger for WXS than for Relax.
Because other people will be using what I'm making, it is most likely
that they know WXS. It will therefore probably be easier for them to
understand and maintain a WXS schema than a Relax schema.
- I have no need for the better support of Relax for specifying the
root-element of a document, because the XML document will be
auto-generated, which gives me, as the programmer of both the schema
as the program that will generate the XML the power to make sure this
will never go wrong.
- I have no need for the better handling of attributes of Relax,
because attributes will not play an important role in my XML document.
- I need the constraints mechanism (i.e. minOccurs and maxOccurs) of
WXS. Relax has nothing like that.

These are the most important points for me to choose WXS.
I hope it helps others to make a well-motivated choice.

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Pieter.txt schreef op 30 november 2003 @ 21:44:
- with the coming of XSLT 2.0 (which support schemas and not just data
types !) I think WXS has a juge advantage. Even though XSLT 2 should
support other languages too, in a short email discussion Michael Kay
(the author of the document on XSLT 2 on w3.org) stated that XSLT 2
has only been tested with WXS and he did not know if other languages
will be tested too. Even though I do not know if I will need to
combine XSLT 2 and XML Schema (XSLT 2 can function without schemas), I
do not want to restrict myself.
- user and vendor support is much larger for WXS than for Relax.
Because other people will be using what I'm making, it is most likely
that they know WXS. It will therefore probably be easier for them to
understand and maintain a WXS schema than a Relax schema.
- I have no need for the better support of Relax for specifying the
root-element of a document, because the XML document will be
auto-generated, which gives me, as the programmer of both the schema
as the program that will generate the XML the power to make sure this
will never go wrong.
- I have no need for the better handling of attributes of Relax,
because attributes will not play an important role in my XML document.
- I need the constraints mechanism (i.e. minOccurs and maxOccurs) of
WXS. Relax has nothing like that.
Als ik even wat commentaar mag geven. :)

- Wat betreft argument 2 denk ik dat dat op zich op dit moment wel zo is, maar dat RELAX NG op dit moment bezig is met een redelijke inhaalslag. Overigens heeft RELAX NG juist grote voordelen voor mensen die geen ervaring hebben met WXS, omdat het veel leesbaarder is voor mensen.
- Verder zijn 3 en 4 natuurlijk vrij bogus: het is loos om een taal te verwerpen voor een andere omdat de eerste features heeft die jij niet nodig hebt.
- Als laatste vraag ik me nog af of je kunt aangeven waarom je precies minOccurs en maxOccurs zo willen hebben. Beide talen hebben '0 of meer' en '1 of meer', en ik kan me zo geen use case voorstellen waarin je meer expressiviteit nodig zou hebben.

Rustacean


  • Eelis
  • Registratie: Januari 2003
  • Laatst online: 21-02-2015
.

[ Voor 99% gewijzigd door Eelis op 18-02-2015 23:59 ]


  • Pieter.txt
  • Registratie: September 2002
  • Laatst online: 15:23
Manuzhai schreef op 30 november 2003 @ 23:27:
[...]
Als ik even wat commentaar mag geven. :)

1. Wat betreft argument 2 denk ik dat dat op zich op dit moment wel zo is, maar dat RELAX NG op dit moment bezig is met een redelijke inhaalslag. Overigens heeft RELAX NG juist grote voordelen voor mensen die geen ervaring hebben met WXS, omdat het veel leesbaarder is voor mensen.
2. Verder zijn 3 en 4 natuurlijk vrij bogus: het is loos om een taal te verwerpen voor een andere omdat de eerste features heeft die jij niet nodig hebt.
3. Als laatste vraag ik me nog af of je kunt aangeven waarom je precies minOccurs en maxOccurs zo willen hebben. Beide talen hebben '0 of meer' en '1 of meer', en ik kan me zo geen use case voorstellen waarin je meer expressiviteit nodig zou hebben.
Wat betreft punt 1: dat klopt, maar dat is een beetje hetzelfde verhaal als Linux vs. Windows en het kan dus nog wel een aardige tijd duren voor Relax een aardige gebruikersgroep en toolsupport heeft.

Wat betreft punt 2: het root-element zit altijd goed, het gaat meer om wat er tussen zit en daar zijn ze vergelijkbaar. Wat betreft attributen: voorzover ik nu kan overzien heb ik daarvoor geen geavanceerde dingen nodig. Goed ik kan het fout hebben, maar zo zie ik het nu. (Dit is voor jullie natuurlijk wat lastig inschatten aangezien jullie de details niet weten ;) )

Wat betreft punt 3: Relax kan niet zoiets zeggen als 'precies 1 keer' voorzover ik heb kunnen nagaan.

Ik geloof dat Eelis met het bovenstaande ook wel antwoord heeft gekregen.

O'Toole's Commentary on Murphy's Law: Murphy was an optimist.

Pagina: 1