Geschachtelte Entities
Daniel Thoma
- xml
0 fjh0 Thomas J.S.0 Thomas J.S.0 fjh
0 Thomas J.S.
Hallo zusammen
Mein prob:
Ist es erlaubt ParameterEntities zu schachteln Also etwa so:
<!ENTITY % text "bla bla">
<!ENTITY % satz "Sehr viel %text;">
oder muß man text dann als normales Entity definieren:
<!ENTITY text "bla bla">
<!ENTITY % satz "Sehr viel &text;">
oder geht beides?
Tschüs und vielen Dank
Daniel
Hallo Daniel,
Ist es erlaubt ParameterEntities zu schachteln Also etwa so:
<!ENTITY % text "bla bla">
<!ENTITY % satz "Sehr viel %text;">
oder muß man text dann als normales Entity definieren:
<!ENTITY text "bla bla">
<!ENTITY % satz "Sehr viel &text;">
oder geht beides?
Laut XML-Spec sind beide Wege korrekt:
http://www.w3.org/TR/1998/REC-xml-19980210#sec-entity-decl
Eine PE-Def kann als Entity-Value wieder eine PE-Ref enthalten, aber auch eine (normale) Entity und Character-Reference.
Gruß
Franz
Hallo Franz!
Laut XML-Spec sind beide Wege korrekt:
*wunder* und *lol* und ich sagte ihm, beide sind falsch ....
dann mal ran:
Grüße
Thomas
Hallo Franz!
Laut XML-Spec sind beide Wege korrekt:
Stimmt. Ich sollte wohl nicht so "spät" posten (und vor allem keinen Blödsinn).
Steht ja auch ein Beispiel da:
http://www.w3.org/TR/1998/REC-xml-19980210#intern-replacement
Nun ja... Konsequenz: ich gehe schlafen.
Grüße
Thomas
Hi Thomas,
Ich sollte wohl nicht so "spät" posten >
Vielleicht solltest Du nicht genau um 0:00 Uhr posten, wer was was die Geister einem zu dieser Stunde alles einflüstern wollen ;-)
Nun ja... Konsequenz: ich gehe schlafen.
Hoffe Du hast gut geschlafen, ich bin jedenfalls mit ner besch... Erkältung aufgewacht. Dieses fiese Kribbeln im Hals, was du noch zu ignorieren versuchst, aber dir gnadenlos ankündigt: das WE kannste im Bett verbringen
Grüße
Franz
Hallo Daniel!
Mein prob:
Ist es erlaubt ParameterEntities zu schachteln Also etwa so:
<!ENTITY % text "bla bla">
<!ENTITY % satz "Sehr viel %text;">
oder muß man text dann als normales Entity definieren:
<!ENTITY text "bla bla">
<!ENTITY % satz "Sehr viel &text;">
oder geht beides?
Beispiel ist sehr unglücklich gewählt! (beide sind falsch nämlich)
Wills du Elemente oder Text als Entities definieren?
Elemente:
<!ENTITY % text "element anderes.element">
<!ENTITY % satz "%text; drittes.element">
Text:
<!ENTITY text CDATA "bla bla">
<!ENTITY satz CDATA "Sehr viel &text;">
Grüße
Thomas
Hallo nochmal!
Das habe ich falsch geschrieben!
Text:
<!ENTITY text CDATA "bla bla">
<!ENTITY satz CDATA "Sehr viel &text;">
kannst so machen:
<!ENTITY text CDATA "bla bla">
<!ENTITY satz "Sehr viel &text;">
oder so:
<!ENTITY text "bla bla">
<!ENTITY satz "Sehr viel &text;">
Grüße
Thomas
PS: den rest beim Franz posting ...
Hallo Zusammen
Der Link von fjh hat mir geholfen.
Den abschnitt hab ich gesucht nur in der Spec nie gefunden.
<!ENTITY text CDATA "bla bla">
<!ENTITY satz "Sehr viel &text;">
Was soll das CDATA?
[70] EntityDecl ::= GEDecl PEDecl
[71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'
[72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
[73] EntityDef ::= EntityValue (ExternalID NDataDecl?)
[74] PEDef ::= EntityValue ExternalID
[9] EntityValue ::= '"' ([^%&"] PEReference Reference)* '"' "'" ([^%&'] PEReference Reference)* "'"
[67] Reference ::= EntityRef CharRef
Was soll da ander sein:
<!ENTITY % text "element anderes.element">
<!ENTITY % satz "%text; drittes.element">
zu da?
<!ENTITY % text "bla bla">
<!ENTITY % satz "Sehr viel %text;">
Beides legt text fest. PE-Referenzen darf man nur in der DTD verwenden.
Beide kann man nur so verwenden:
<!ENTITY test "Satz: %satz;">
Den direkt in der dtd füren sie nur zu einem Fehler
In deinem fall würde &test; im übrigen zu:
Satz: Sehr viel bla bla
Tschüs
Daniel
Hallo!
<!ENTITY text CDATA "bla bla">
<!ENTITY satz "Sehr viel &text;">
Was soll das CDATA?
Caracter Data
Ich sagte schon weiter unten, daß ich offensichtlich im Halbschlaf war und das führte dazu, daß ich eine Priese SGML hineingebracht habe. ;-) Denn das mit CDATA ist SGML Syntax
Was soll da ander sein:
<!ENTITY % text "element anderes.element">
<!ENTITY % satz "%text; drittes.element">
zu da?
<!ENTITY % text "bla bla">
<!ENTITY % satz "Sehr viel %text;">
Wenig, aber das reicht aus:
Wenn du bedenkst, daß das was zwischen den Anfürungszeichen steht als Ersetzungstext für die Entity genommen wird und den Zweck für die 2 unterschiedliche Anwendugen beachtest, dann ergeben sich unterschiede: würdest du im 2. Fall ein Element namens 'bla' definieren, würde dies zu einem Fehler führen.
Beides legt text fest. PE-Referenzen darf man nur in der DTD verwenden.
Natürlich, aber du hast mit keinem Wort gesagt, wo und wie du diese Entities verwenden willst.
In deinem fall würde &test; im übrigen zu:
Satz: Sehr viel bla bla
War nicht das genau, das was du wolltest?
Grüße
Thomas