Définition de structure XML XMLBuilderDiagram
Le générateur XML s'appuie sur des fichiers XML. L'objectif de cette rubrique est de décrire la manière dont ces fichiers XML doivent être créés afin qu'ils puissent être décodés correctement par le générateur XML.
A propos des fichiers XML et XSD
Le langage XML (Extensible Markup Language) est similaire au langage HTML (Extensible Markup Language). Un fichier HTML contient des données et des informations concernant leur présentation. Un fichier XML contient uniquement des données.
Les données XML sont quant à elles entourées de balises apportant une signification. Par exemple, l'expression <price>24</price> stipule que le nombre 24 désigne un prix. En terminologie XML, ce prix s'appelle un élément. Les éléments peuvent aussi être des noms de produits, des quantités ou des totaux. Alors qu'un être humain déduit d'après la balise XML que le nombre 24 désigne un prix, le logiciel quant à lui extrait des éléments de prix de ce même fichier. Cela est impossible dans un fichier HTML.
Un fichier XML repose sur une définition de structure XML (XSD). Un fichier XSD fournit la syntaxe et définit la manière dont les éléments et les attributs peuvent être représentés dans un document XML. Il définit un type de document XML en termes de contraintes sur les éléments et les attributs qui sont susceptibles d'apparaître, ainsi que leur relation respective, sur les types de données qu'ils peuvent contenir et ainsi de suite.
Fichier XSD XMLBuilderDiagram en détail
La définition de structure XML XMLBuilderDiagram est la structure XML qui fournit la syntaxe des fichiers XML pouvant être décodés par le générateur XML d'ArcGIS Schematics. Ce fichier XSD est installé par défaut dans \ArcGIS\Schematics\XMLSchema.
Tout fichier XML compatible avec le générateur XML commence et se termine par la balise Diagrams :
Eléments dans les balises <Diagrams>
<?xml version="1.0" encoding="utf-8"?>
<sch:Diagrams xmlns:sch = 'http://www.esri.com/schemas/ArcGIS/10/Schematics'
xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.esri.com/schemas/ArcGIS/10/Schematics XMLBuilderDiagram.xsd'>
...
</Diagrams>
Plusieurs diagrammes peuvent être stockés dans un fichier XML, la définition de chacun commençant par la balise Diagram :
Eléments dans les balises <Diagram>
<?xml version="1.0" encoding="utf-8"?>
<sch:Diagrams xmlns:sch = 'http://www.esri.com/schemas/ArcGIS/10/Schematics'
xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.esri.com/schemas/ArcGIS/10/Schematics XMLBuilderDiagram.xsd'>
<Diagram DiagramTemplateName="All" DiagramName="All" EnforceDiagramTemplateName="false" EnforceDiagramName="false">
...
</Diagram>
</Diagrams>
DiagramTemplateName et DiagramName sont des paramètres facultatifs. Lorsque le paramètre EnforceDiagramTemplateName ou EnforceDiagramName a la valeur False, le nom du modèle de diagramme et le nom du diagramme doivent être redéfinis dans la boîte de dialogue Nouveau diagramme schématique.
Les sections suivantes sont alors attendues pour chaque diagramme :
- La première balise possible pour un diagramme est PropertySet, qui peut servir à définir les valeurs de propriétés associées au diagramme. Cette section est facultative :
Eléments dans les balises <PropertySet>
<Diagram EnforceDiagramTemplateName="false" EnforceDiagramName="false"> <PropertySet> <PropertyArray> ... </PropertyArray> </PropertySet> ... </Diagram>
Eléments dans les balises <PropertySetProperty>
<PropertySet> <PropertyArray> <PropertySetProperty> <Key>Country</Key> <Value>CALIFORNIA</Value> </PropertySetProperty> <PropertySetProperty> ... </PropertySetProperty> </PropertyArray> </PropertySet>
- La deuxième balise possible pour un diagramme est Datasources, qui détaille toutes les sources de données pouvant être associées au diagramme et à son contenu.
Eléments dans les balises <Datasources>
<Diagram EnforceDiagramTemplateName="false" EnforceDiagramName="false"> ... <Datasources> ... </Datasources> ... </Diagram>
Chaque définition Datasource repose sur deux éléments requis : NameString et WorkSpaceInfo. NameString est le nom de la source de données et WorkSpaceInfo regroupe les paramètres qui définissent le type de source de données et les propriétés de connexion (PathName, BrowseName, WorkspaceFactoryProgID, WorkspaceType, ConnectionProperties).
Eléments dans les balises <Datasource>
<Datasources> ... <Datasource> <NameString>XMLDataSource</NameString> <WorkSpaceInfo> <WorkspaceFactoryProgID>esriDataSourcesGDB.AccessWorkspaceFactory</WorkspaceFactoryProgID> <PathName>C:\ArcGIS\ArcTutor\Schematics\DatasetEditor\XMLDataAssociatedFeatureClasses.mdb</PathName> </WorkSpaceInfo> </Datasource> ... </Datasources>
- La dernière section attendue est Features, qui détaille toutes les entités schématiques contenues dans le diagramme.
Comme quatre types d'entités schématiques peuvent s'afficher dans les diagrammes schématiques (nœud, lien, nœud sur lien et sous-lien), quatre types de balises peuvent être définis dans cette section : NodeFeature, LinkFeature, NodeOnLinkFeature et SubLinkFeature :
Eléments dans les balises <Features>
<Diagram EnforceDiagramTemplateName="false" EnforceDiagramName="false"> ... <Features> <NodeFeature> ... </NodeFeature> ... <LinkFeature> ... </LinkFeature> ... <NodeOnLinkFeature> ... </NodeOnLinkFeature> ... <SubLinkFeature> ... </SubLinkFeature> ... </Features> </Diagram>
- Deux attributs spécifiques sont obligatoires pour un élément d'entité, quel que soit son type : FeatureClassName, qui fait référence au nom de la classe d'entités schématiques qui implémente cette entité schématique dans le diagramme schématique, et ExternalUniqueID, qui correspond à l'identifiant de l'entité schématique.
- Ensuite, plusieurs paramètres facultatifs sont possibles pour un élément d'entité, tels que : DatasourceName, UCID, UOID et USID (l'identifiant ClassID, l'identifiant ObjectID et l'identifiant de sous-type de l'objet/entité SIG dans la base de données DatasourceName lorsqu'un objet/une entité SIG est associé à l'entité schématique), RelatedContainerID (l'identifiant du conteneur de l'entité schématique) et PropertySet (qui détaille toutes les valeurs de propriétés associées à l'entité schématique).
- Des attributs schématiques peuvent ou doivent être définis pour les entités schématiques, selon leur type :
- Pour un type NodeFeature, les attributs facultatifs InitialX et InitialY peuvent également être définis pour spécifier les coordonnées x et y de l'entité schématique :
Voici un exemple d'élément NodeFeature :
Eléments dans les balises <NodeFeature>
<NodeFeature> <FeatureClassName>Stations</FeatureClassName> <ExternalUniqueID>Station-1</ExternalUniqueID> <DatasourceName>XMLDataSource</DatasourceName> <UCID>1</UCID> <UOID>1</UOID> <RelatedContainerID>Container-1</RelatedContainerID> <InitialX>-4462</InitialX> <InitialY>2828</InitialY> <PropertySet> <PropertyArray> <PropertySetProperty> <Key>Feeder</Key> <Value>1</Value> </PropertySetProperty> <PropertySetProperty> <Key>Name</Key> <Value>WABY</Value> </PropertySetProperty> <PropertySetProperty> <Key>Capacity</Key> <Value>1</Value> </PropertySetProperty> <PropertySetProperty> <Key>Type</Key> <Value>A</Value> </PropertySetProperty> </PropertyArray> </PropertySet> </NodeFeature>
- Pour un type LinkFeature, les attributs FromNode et ToNode sont obligatoires. Ils doivent faire référence aux identifiants NodeFeature associés aux nœuds d'extrémité et d'origine. La balise Vertices peut également être présente pour spécifier l'ensemble de sommets pouvant s'afficher le long du lien, chaque sommet étant affiché aux coordonnées x et y.
Voici un exemple d'élément LinkFeature :
Eléments dans les balises <LinkFeature>
<LinkFeature> <FeatureClassName>LV_Lines</FeatureClassName> <ExternalUniqueID>LVLine-52</ExternalUniqueID> <DatasourceName>XMLDataSource</DatasourceName> <UCID>5</UCID> <UOID>52</UOID> <FromNode>Station-33</FromNode> <ToNode>Station-45</ToNode> <PropertySet> <PropertyArray> <PropertySetProperty> <Key>Rate</Key> <Value>452456</Value> </PropertySetProperty> <PropertySetProperty> <Key>Category</Key> <Value>S</Value> </PropertySetProperty> </PropertyArray> </PropertySet> <Vertices> <Vertex> <X>-562.37451</X> <Y>-2935.90906</Y> </Vertex> <Vertex> <X>-192.067429999999</X> <Y>-3254.90854</Y> </Vertex> <Vertex> <X>509.88013</X> <Y>-3298.78026</Y> </Vertex> </Vertices> </LinkFeature>
- Pour un type NodeOnLinkFeature, les attributs obligatoires ReferenceLink et InitialPosition sont attendus. L'attribut ReferenceLink spécifie l'identifiant LinkFeature auquel le nœud sur lien est associé et l'attribut InitialPosition permet de spécifier la position absolue ou relative du nœud sur lien sur son lien associé.
Voici un exemple d'élément NodeOnLinkFeature :
Eléments dans les balises <NodeOnLinkFeature>
<NodeOnLinkFeature> <FeatureClassName>NOL</FeatureClassName> <ExternalUniqueID>N1</ExternalUniqueID> <DatasourceName>myDS</DatasourceName> <InitialPosition>0.5</InitialPosition> <ReferenceLink>L1</ReferenceLink> </NodeOnLinkFeature>
- Pour un type SubLinkFeature, les attributs obligatoires ReferenceLink,FromNode et ToNode sont attendus. L'attribut ReferenceLink spécifie l'identifiant LinkFeature auquel le sous-lien est associé. Les attributs FromNode et ToNode font référence aux identifiants NodeFeature qui sont associés aux nœuds d'origine et d'extrémité du sous-lien.
Voici un exemple d'élément SubLinkFeature :
Eléments dans les balises <NodeOnLinkFeature>
<SubLinkFeature> <FeatureClassName>LOL</FeatureClassName> <ExternalUniqueID>S1</ExternalUniqueID> <DatasourceName>myDS</DatasourceName> <FromNode>N1</FromNode> <ToNode>R2</ToNode> <ReferenceLink>L1</ReferenceLink> </SubLinkFeature>
- Pour un type NodeFeature, les attributs facultatifs InitialX et InitialY peuvent également être définis pour spécifier les coordonnées x et y de l'entité schématique :
Modèle de données XMLBuilderDiagram
La figure suivante illustre la définition de structure XML du fichier XMLBuilderDiagram :
Exemples de fichiers XML reposant sur le fichier XSD XMLBuilderDiagram
La figure suivante illustre un exemple de fichier XML de base qui inclut une description d'un diagramme contenant une entité schématique de nœud unique :
La figure suivante illustre un exemple d'extraction d'un fichier XML qui inclut une description d'un diagramme contenant une entité schématique de lien :
Pour obtenir un fichier d'exemple XML plus détaillé reposant sur le fichier de description de structure XML XMLBuilderDiagram, ouvrez le fichier SampleNetworkData.xml fourni dans le programme d'installation du didacticiel. Il doit se trouver dans le répertoire C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data.