Element muß Inhalt haben
André Laugks
- xml
Hallo!
Sehe ich das richtig, daß ich in einer DTD nicht festlegen kann, daß in einem Element Inhalt stehen muß.
<name></name> # nicht erlaubt
Kann ich das nur mit XML-Schema lösen?
MfG, André Laugks
L-Andre @ gmx.de
Hallo André,
Sehe ich das richtig, daß ich in einer DTD nicht festlegen kann, daß in einem Element Inhalt stehen muß.
Ich würde versuchen, daß mit dem "+" zu lösen:
http://selfhtml.teamone.de/xml/dtd/elemente.htm#viele_elemente
<!ELEMENT meinelement (#PCDATA)+>
Ich gebe aber keine Garantie. ;-)
Hallo!
Ich würde versuchen, daß mit dem "+" zu lösen:
<!ELEMENT meinelement (#PCDATA)+>
Das hatte ich schon versucht. Das Dokument ist dann nicht mehr wohl geformt.
MfG, André Laugks
L-Andre @ gmx.de
Hallo André,
Sehe ich das richtig, daß ich in einer DTD nicht festlegen kann, daß in einem Element Inhalt stehen muß.
<name></name> # nicht erlaubt
Du hast ja bereits festgelgt, dass in deinem Element ein Inhalt stehen muss, sonst hättests du es mit EMPTY bestimmen müssen:
<!ELEMENT name EMPTY>
Wenn du <!ELEMENT name (#PCDATA)> definiert hast, bedeutet es nicht dass das Element nicht leer sein kann, denn als PCDATA kann auch eine leere Zeichehnkette bestimmt sein.
Grüße
Thomas
Hallo!
Du hast ja bereits festgelgt, dass in deinem Element ein Inhalt stehen muss, sonst hättests du es mit EMPTY bestimmen müssen:
<!ELEMENT name EMPTY>
Wenn du <!ELEMENT name (#PCDATA)> definiert hast, bedeutet es nicht dass das Element nicht leer sein kann, denn als PCDATA kann auch eine leere Zeichehnkette bestimmt sein.
Wenn ich aber Inhalt haben möchte, also sei es nur ein Buchstabe oder was auch immer, muß ich mit XML-Schema arbeiten?
MfG, André Laugks
L-Andre @ gmx.de
Hallo André,
Wenn ich aber Inhalt haben möchte, also sei es nur ein Buchstabe oder was auch immer, muß ich mit XML-Schema arbeiten?
Ja, mit schema kannst du das Erreichen:
<simpleType name="nicht-ganz-leer">
<restriction base='string'>
<minLength value='1'/>
</restriction>
</simpleType>
<xsd:element name="name" type="nicht-ganz-leer"/>
-- oder --
<xsd:element name="name">
xsd:simpleType
<xsd:restriction base="xsd:string">
<xsd:minLenght value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
Aber nochmal: auch eine leere Zeichehnkette ist "was auch immer" ;-)
Grüße
Thomas