Leeloo5E: Schema Problem

Beitrag lesen

Hallo,

Beschreibung: die Tags <test1 /> und <test4 /> dürfen genau 1 mal (oder kein mal) als child vorkommen (Position egal), <test2 /> und <test3 /> dürfen von 0 bis n vorkommen (auch hier ist die Position des einzelnen Elements egal).

Ist dieses Problem mit Schemas überhaupt lösbar?

Klar: Da sollte sogar eine DTD für ausreichen.

Sorry, aber so klar ist das für mich nicht.
Hab schon etliche Workarounds gemacht, aber scheitere immer daran, dass <test1 /> und <test4 /> wirklich nur 1 einziges mal als child vorkommen dürfen. Man kann ja keine sequenz machen, da es ja keine Sequenz ist!?!?

Muss das leider gegen ein Schema validieren!

Vielleicht habe ich das ganze zu schnell gelesen. Es gibt doch aber die Möglichkeit in einer DTD anzugeben, ob ein Element nur einmal, miindestens einmal oder beliebigoft oder keinmal angegeben werden kann.

Also:
einmal: (kind)
mindestens einmal und beliebig oft: (kind)+
beliebig oft oder keinmal: (kind)*

Also am Beispiel mal:
(test1)
(test4)
(test2)*
(test3)*

Das "oder kein mal" stand bei dir in Klammern und wäre so jetzt nicht möglich. Kennst du XSDs? Da kann man noch exakter angeben wie oft ein Element vorkommen soll. Da kann man dann sagen, dass test1 und test4 keinmal oder nur einmal vorkommen soll. Und für test2 und test3 sagt man dann 0 bis unbounded.
Hier geht zu XSD oder z.B. hier XML Schema.

Erklär mir, warum es keine Sequenz ist!

Gruß,
Leeloo

--
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra