Nous utilisons XML pour définir un schéma de contrôle des contenus pouvant être affichés dans un outil de création de diagrammes. Le fichier de schéma spécifie quels types d'objets peuvent être placés sur le diagramme, comment ils peuvent être liés entre eux et quelles propriétés ont ces objets (c'est-à-dire, quelles propriétés paramétrables apparaissent dans l'éditeur).xml: est l'utilisation de plusieurs niveaux! ENTITY possible?
Lorsqu'un nouveau type de diagramme est nécessaire, un nouveau schéma est écrit et validé par rapport à un fichier .xsd. Afin de rendre le fichier de schéma plus modulaire et plus facile à maintenir, nous utilisons des déclarations pour inclure des fichiers séparés. Les listes de propriétés, etc., qui appartiennent ensemble sur un élément de diagramme particulier, mais qui pourraient apparaître à plusieurs endroits dans le schéma, sont écrites dans un fichier xml séparé, et ensuite incluses à l'endroit approprié. Dis:
<!-- Nameing etc. just as an example -->
<!ENTITY CommonProerties1 SYSTEM "file:../CommonProperties1.xml">
<!ENTITY CommonProerties2 SYSTEM "file:../CommonProperties2.xml">
puis quelque part dans le schéma:
<Node shape="Square">
&CommonProperties1;
<!-- Specific properties go here -->
</Node>
Cela empêche beaucoup de copier des trucs cipé qui rend la maintenance difficile, et permet des propriétés commmpn être partagées avec plusieurs schémas aussi. Le problème est que maintenant, certaines des propriétés communes ont aussi des éléments de base, tels que des groupes de drapeaux et d'énumérations, etc. Je voudrais que chaque fichier (tel que "CommonProperties1.xml") puisse inclure un autre ensemble de base tel que "CommonEnums.xml", mais je ne pense pas que ce soit possible en utilisant! ENTITY declaractions.
Vous ne pouvez pas déclarer un! ENTITY en-dehors d'un en-tête DOCTYPE, et si vous ajoutez l'en-tête, le fichier xml de niveau supérieur est invalide car il obtient une déclaration d'en-tête à travers le fichier.
Est-ce que quelqu'un a déjà essayé de faire des choses similaires, et qu'avez-vous fait pour contourner/résoudre le problème? Y a-t-il une meilleure option qui me manque?
Vive toute aide,
Xan
Pas possible de faire ce que nous espérions, merci pour vos conseils. – xan