Tobel: Gleichnamige aufeinanderfolgende Elemente im XML Schema

Hallo

Ich habe folgende XML Datei:

<Kapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
    <Unterunterkapitel>
      <Absatz>Text</Absatz>
    </Unterunterkapitel>
  </Unterkapitel>
</Kapitel>

Nun möchte ich die XML Datei so an einem Schema validieren, dass es nicht möglich ist, dass sobald einmal

<Unterkapitel>
    <Absatz>Text</Absatz>
    <Unterunterkapitel>
      <Absatz>Text</Absatz>
    </Unterunterkapitel>
  </Unterkapitel>

vorkommt, weitere Vorkommen von

<Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>

möglich sind. Also folgendes darf nicht passieren:
<Kapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
    <Unterunterkapitel>
      <Absatz>Text</Absatz>
    </Unterunterkapitel>
  </Unterkapitel>
  <Unterkapitel>
    <Absatz>Text</Absatz>
  </Unterkapitel>
</Kapitel>

Ich benutze XMLSPY zur Erstellung des Schemas. Sobald ich zwei aufeinander folgende Tags mit gleichen Tagnamen, in diesem Fall "Unterkapitel", eingebe und das Schema auf Wohlgeformtheit überprüfe, gibt mir XMLSPY eine Fehlermeldung, die ich nicht nachvollziehen kan aus:
"Two elements with the same name as part of the particle must be defined with the same type name without derivations."

Wer weiß Rat?

Vielen Dank im voraus,

Tobel

  1. Hi,

    Ich benutze XMLSPY zur Erstellung des Schemas. Sobald ich zwei aufeinander folgende Tags mit gleichen Tagnamen, in diesem Fall "Unterkapitel", eingebe und das Schema auf Wohlgeformtheit überprüfe, gibt mir XMLSPY eine Fehlermeldung, die ich nicht nachvollziehen kan aus:

    Du solltest Dich mal mit den grundlegenden Begriffen auseinandersetzen. tag und element z.B.

    Abgesehen davon: Du kennst minOccurs und maxOccurs?

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/
    1. Du solltest Dich mal mit den grundlegenden Begriffen auseinandersetzen. tag und element z.B.

      Tja, der Einsteiger muss wohl doch alles sofort genau beherrschen bis er mitreden darf...

      Abgesehen davon: Du kennst minOccurs und maxOccurs?

      Klar kenn ich die Attribute, aber mein Problem liegt an einer anderen Stelle, wie es meine Fragestellung auch darstellt.

      1. Hi,

        Abgesehen davon: Du kennst minOccurs und maxOccurs?

        Klar kenn ich die Attribute, aber mein Problem liegt an einer anderen Stelle, wie es meine Fragestellung auch darstellt.

        Nein, Deine Fragestellung macht eben genau das nicht klar.
        Insbesondere weil Du zwar viel von Schema schreibst, aber Dein Schema nicht gezeigt hast.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/
  2. Hallo,

    Nun möchte ich die XML Datei so an einem Schema validieren, dass es nicht möglich ist, dass sobald einmal

    <Unterkapitel>
        <Absatz>Text</Absatz>
        <Unterunterkapitel>
          <Absatz>Text</Absatz>
        </Unterunterkapitel>
      </Unterkapitel>

    vorkommt, weitere Vorkommen von

    <Unterkapitel>
        <Absatz>Text</Absatz>
      </Unterkapitel>

    möglich sind.

    Das ist mit XML Schema alleine nicht möglich. Musst Du zusätzlich zur Struktur auf Inhalte prüfen, dann hilft Dir evtl. Schematron plus XML Schema. Schematron-Validator von Topologoi: http://www.topologi.com/products/validator/index.html

    Ich benutze XMLSPY zur Erstellung des Schemas. Sobald ich zwei aufeinander folgende Tags mit gleichen Tagnamen, in diesem Fall "Unterkapitel", eingebe

    Wie eingeben, deklarieren? Wie deklariert? Codebeispiel?

    und das Schema auf Wohlgeformtheit überprüfe, gibt mir XMLSPY eine Fehlermeldung, die ich nicht nachvollziehen kan aus:
    "Two elements with the same name as part of the particle must be defined with the same type name without derivations."

    Gruß
    Franz