Hallo Auge,
Meine Frage ist halt, ob es irgendwo leicht verständliche Beschreibungen solcher Spezialfälle gibt. An der Stelle reicht es eben nicht mehr, zu wissen, dass „()+“ „ein- oder mehrfach“, „()*“ demgegenüber „kein-, ein- oder mehrfach“ bedeutet. Ist die Verschachtelung etwa überflüssig, weil „(verkabelungstyp)*“ den Fall „(verkabelungstyp)+“ einschließt? Für so etwas brauche ich Beschreibungen, die ich selbst partout nicht finde.
Diese wirst Du auch kaum finden. Die DTD-Syntax gibt letztlich nur Möglichkeiten vor, die man auf das konkrete Problem anwenden kann.
Vielleicht ist auch XML-Schema von Vorteil, da man damit restriktiver Vorgaben machen kann (u. a. minOccurs / maxOccurs) und Datentypen genauer bestimmen kann (xs:integer, xs:date, usw.).
Zudem könnte ein geeigneter XML-Editor helfen, Schemas zu visualisieren. Zur Visualisierung von DTDs ist TreeVision nützlich, das ist aber kein Editor. Eine solche Abbildung habe ich beim Projekt epubMinFlow zur Veranschaulichung der Struktur verwendet.
Ansonsten sage einfach, was konkret beabsichtigt ist. Dann lässt sich vielleicht eine maßgeschneiderte DTD formulieren.
Grüße,
Thomas