Warum passt diese DTD-Zeile nicht zu diesem Dokument?

Status
Nicht offen für weitere Antworten.

Tobias

Top Contributor
Hi,
ich habe ein Dokument, das gegen eine DTD evaluiert wird. Leider beschwert sich mein Editor, das die beiden nicht zusammenpassen - da ich die DTD entwickle, hab ich ja schon mit sowas gerechnet. Ich finde aber den Fehler nicht!

Hier das Dokument (Elemente der zweiten Ebene hab ich gekürzt):

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE collaboration SYSTEM "collaboration-0.0.1c.dtd">

<collaboration>
        <comment>Version 0.0.1c</comment>

        <startWorkflow>
                ...
        </startWorkflow>

        <var name="testVar1" type="Integer" value="3" />
        <var name="testvar2" type="String" value="Hallo!" />

        <comment>Dies ist ein Kommentar</comment>

        <if id="erstesIf">
                ...
        </if>

        <comment ref="erstesIf">Dies ist ein Kommentar zum if-Block "erstesIf"</comment>

        <set name="testVar1" value="2" />

        <while>
                ...
        </while>

        <set name="testVar2">
                ...
        </set>

        <wait>
              ...
        </wait>

</collaboration>

Der Inhalt des Root-Elementes <collaboration> wird durch folgende DTD-Zeile definiert:

Code:
<!ELEMENT collaboration ( (comment* | startWorkflow?), (comment* | startWorkflow* | endWorkflow* | var* | set* | if* | while* | wait*) ) >

Meine Absicht war es, eine Head-Body-Aufteilung zu erzwingen, wie sie in HTML auch Usus ist. Im Head darf ein oder mehrere Kommentare stehen, sowie kein oder maximal ein <startWorkflow>-Element. Im Body dürfen alle Elemente stehen und zwar beliebig oft. Meiner Meinung nach passen mein Anspruch und meine Definition durchaus zusammen, nach Meinung meines Rechners nicht - er wird wohl Recht haben...

mpG
Tobias
 

Bleiglanz

Gesperrter Benutzer
ahhhh welche Zeile, hast du kein Tool das dir sagt wo der fehler ist


(comment* | startWorkflow?)

ENTWEDER ODER ABER NICHT BEIDES
 

foobar

Top Contributor
Wenn alle Elemente bleliebig oft und beliebig geschachtelt werden dürfen, dann macht man das so:
Code:
(comment | startWorkflow | endWorkflow | var | set | if | while | wait)*
 

Tobias

Top Contributor
@Bleiglanz: Nein, der zeigt mir nur das Element an, das die Bedingungen nicht erfüllt - und das ist wie gesagt das Wurzelelement. Aber deine Anmerkung war (wie immer) hilfreich, wenn auch rüde. Danke.

@foobar: Wo du Recht hast, hast du Recht.

Thema erledigt.

mpG
Tobias

P.S.: Wo ist denn der Button zum "Häkchen hinter Titel"-Machen?
 
S

stev.glasow

Gast
Links unten, ein paar Zentimeter unter "Dieses Thema beobachten" - ist der bei dir nicht zu sehen?
 

Tobias

Top Contributor
Nein.

error.gif


mpG
Tobias
 
R

Roar

Gast
nein, nicht beim schreiben, sondern bei der thread ansicht. unter allen posts links, genau unter "java-forum.org Foren-Übersicht -> XML und Co."
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben