Calocybe: Entity-Referenz bzw. -Auftreten in/als Attributwert

Beitrag lesen

Hi again

ich auch, ich auch, stecke halt nur gerade tiefer drin, weil ich in der Firma so'n bißchen XML als Format für unsere Dokus... "verkaufen" möchte. Sonst muß ich mich nämlich in das schreckliche Word weiter einarbeiten, was mir gar nicht so recht gefallen will.

Oh. Das ist aber ganz schoen gewagt.
In meinem Fall wollen wir ein Kommunikationsprotokoll zwischen verschiedenen CGI-Anwendungen XML-basiert definieren. Genauer gesagt gibt es eine Server-App, die sich per XML reinzieht, was sie zu tun hat, und dann die Ergebnisse der durchgefuehrten Arbeiten als XML zurueckgibt. Eine Client-App, im speziellen Fall ebenfalls ein (etwas groesseres *g*) CGI-Script ruft halt die Server-App mit einem XML-Dokument als Anweisungsliste auf.

Zu dem Rest mit der External Entity kann ich nichts sagen, soweit bin ich noch nicht in der Spec. ;-)

schade :)

Na gut, ich hab's jetzt mal gelesen. Zum Glueck wird auf http://www.xml.com/axml/axml.html die Spec mit zahlreichen Kommentaren unterstuetzt.

Aus Deinem anderen Posting:

Aber das ist verboten! Möglich ist dies nur über Attributwerte! Aber wie nun, wenn nicht so wie im Buch beschrieben.
Die relevanten Passagen in der Recommendation verstehe ich nicht:
1)"Parsed entities are invoked by name using entity references; unparsed entities by name, given in the value of ENTITY or ENTITIES attributes." http://www.w3.org/TR/REC-xml#sec-physical-struct

ENTITY-Attribute sind genau dann solche, wenn sie so deklariert wurden. In Deinem Fall muesste das ungefaehr
    <!ATTLIST logo
        quelle ENTITY #REQUIRED
    >
lauten. Siehe auch Kapitel 3.3.1. der Spec.

und 2) mit Bezug zum ENTITY value:
"Validity Constraint: Entity Name
Values of type ENTITY must match the Name production, values of type ENTITIES must match Names; each Name must match the name of an unparsed entity declared in the DTD." http://www.w3.org/TR/REC-xml#sec-attribute-types

Die Einbindung erfolgt dann mit
    <logo quelle="logo">
Obiger Validity constraint sagt einfach aus, dass das "logo" (der Attributwert) der Name einer in der DTD deklarierten unparsed entity sein muss, that is, Du musst die Entity logo genau so deklarieren, wie Du's hier getan hast:

erst mit
<!NOTATION GIF PUBLIC "CompuServe/Unisys Graphics Format">
<!ENTITY logo SYSTEM  "../xml/bilder/logo.gif" NDATA GIF>

wird es eine externe (eigentlich klar, wegen der Pfadangabe!) und durch die Angabe von NDATA zur unparsed Entity.

Eine externe wird es uebrigens durch die Angabe von SYSTEM (oder stattdessen PUBLIC).

Ach ja, und um mir noch das Koenigreich zu verdienen: http://www.xml.com/axml/notes/ExplUnpEnt.html

War's das, was Du wissen wolltest?