Auge: DTD, mehrfach vorkommen könnende optionale Elemente

Beitrag lesen

Hallo

<!ELEMENT objekttechnik (frequenzbereich, (filtertyp, rueckkanal, (verkabelungstyp)+)*) >

...
  <!ELEMENT filtertyp #PCDATA >
  ...


>   
> #PCDATA gehört in Klammern: <!ELEMENT filtertyp (#PCDATA)>  
  
Das hat mir der Validator während des Schreibens des Eröffnungspostings auch gesagt. Im Original sind die dementsprechend auch vorhanden, hier habe ich sie leider vergessen nachzutragen.  
  

> Ansonsten kann ich nur sagen, dass es sinnvoll ist, eine genaue Beschreibung vorzunehmen und dann das Inhaltsmodell zu präzisieren. Ob + und \* hier alle gewünschten Fälle abdecken, lässt sich ohne Detailkenntnisse nicht beurteilen.  
  
Die glaube ich zu haben. Es gibt Werte, die können, müssen aber nicht übermittelt werden. Für eine Art von Werten („verkabelungstyp“) gilt dabei, dass sie nicht, wenn dann aber auch mehrfach vorkommen können.  
  
`<!ELEMENT objekttechnik (frequenzbereich, (filtertyp, rueckkanal, (verkabelungstyp)+)*) >`{:.language-xml}  
  
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.  
  

> Was damit schon mal funktioniert:  
>   
> ~~~xml

<?xml version="1.0" encoding="UTF-8"?>  

> <!DOCTYPE objekttechnik SYSTEM "test.dtd">  
> <objekttechnik>  
>   <frequenzbereich obergrenze="..."/>  
>   <filtertyp>...</filtertyp>  
>   <rueckkanal/>  
>   <verkabelungstyp typ="..."/>  
> </objekttechnik>

Nee, das wäre, zumindest, wenn ich der Beschreibung in SelfHTML folge, invalide. Für „rueckkanal“ ist folgende Attributliste definiert.

<!ATTLIST rueckkanal  
 faehig (ja | nein) "nein"  
 vorhanden CDATA #IMPLIED  

>

SelfHTML führt zu <http://de.selfhtml.org/xml/dtd/attribute.htm#mit_alternativwert@title=Attributen mit festen alternativen Werten> aus:

„Wenn Sie einen solchen Default-Wert (hier: "nein") notieren, ist hinterher keine Angabe mehr dazu möglich, ob das Attribut notwendig (#REQUIRED) oder optional (#IMPLIED) ist. Denn der Default-Wert bewirkt, dass das Attribut intern vom Seite Parser als notwendig interpretiert wird.“

Das Atttribut „faehig“ ist also implizit explizit (#REQUIED).

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3