Wir verwenden XML, um ein Schema zum Steuern der Inhalte zu definieren, das in einem Diagrammwerkzeug angezeigt werden kann. Die Schemadatei gibt an, welche Arten von Objekten auf dem Diagramm platziert werden können, wie sie miteinander verknüpft werden können und welche Eigenschaften diese Objekte haben (dh welche einstellbaren Eigenschaften im Editor vorhanden sind).xml: ist mehrere Level! ENTITY-Nutzung möglich?
Wenn eine neue Art von Diagramm benötigt wird, wird ein neues Schema geschrieben und gegen eine .xsd validiert. Um die Schemadatei modularer und einfacher zu verwalten, verwenden wir Deklarationen, um separate Dateien hinzuzufügen. Listen von Eigenschaften usw., die zu einem bestimmten Diagrammelement gehören, aber an mehreren Stellen im Schema vorkommen können, werden in eine separate XML-Datei geschrieben und dann an der entsprechenden Stelle eingebunden. Sprich:
<!-- Nameing etc. just as an example -->
<!ENTITY CommonProerties1 SYSTEM "file:../CommonProperties1.xml">
<!ENTITY CommonProerties2 SYSTEM "file:../CommonProperties2.xml">
und dann irgendwo im Schema:
<Node shape="Square">
&CommonProperties1;
<!-- Specific properties go here -->
</Node>
Dieses viel Kopie pated Sachen verhindert, die schwierig macht, beibehalten wird, und lässt commmpn Eigenschaften auch mit mehreren Schemas gemeinsam genutzt werden.
Das Problem ist, dass jetzt einige der gemeinsamen Eigenschaften auch Basiselemente, wie Gruppen von Flags und Enums etc. Ich möchte jede Datei (wie "CommonProperties1.xml") aus, in der Lage sein, aufzunehmen eine andere Basismenge wie "CommonEnums.xml", aber ich denke nicht, dass dies mit! ENTITY-Deklarationen möglich ist.
Sie können keine! ENTITY außerhalb eines! DOCTYPE-Headers deklarieren, und wenn Sie den Header hinzufügen, wird die oberste XML-Datei ungültig, da sie eine Header-Deklaration 1.2 durch die Datei erhält.
Hat schon einmal jemand versucht, ähnliche Dinge zu tun, und was haben Sie getan, um das Problem zu lösen? Gibt es eine bessere Option, die ich vermisse?
Beifall für jede Hilfe,
xan
Nicht möglich zu tun, was wir uns erhofft hatten, danke für Ihren Rat. – xan