La estructura XML utilizada para describir los esquemas en QElectroTech 0.2

Ejemplo de esquema eléctrico

Ejemplo de esquema QET

El diagrama de arriba se pueden obtener con el siguiente código XML: ver el código XML de este esquema.

Proyecto

En la parte superior de la estructura XML, se encuentra el elemento raíz “project”, que representa un proyecto QElectroTech (fichiers *.qet). El elemento XML “project” acepte:

  • el atributo “version” quién debe contener la versión de QElectroTech que registra el fichero. Esto servirá para facilitar la compatibilidad con versiones anteriores más tarde sobre el cambio de formato.
  • el atributo title : título del proyecto

El elemento XML “projet” contiene :

  • 0 a 1 elemento XML “newdiagrams”, encapsulando las propiedades por defecto que se utilizarán cuando se añade un nuevo esquema con el proyecto;
  • 0 a n elementos XML “diagram”, cada uno representa un esquema;
  • 0 a 1 elemento XML “collection”, representa una colección de elementos agrupados

Propiedades por defecto de nuevos esquemas

Este elemento XML Esta destinado a encapsular todas las propiedades que pueden aplicarse a un esquema y que deben ser aplicada en la adición de un nuevo esquema al proyecto. Esto implica tres elementos XML:

  • “border”, que acepta los atributos relativos a dimensiones del esquema y a gráficos del esquema,con la excepción del atributo “height” ;
  • “inset”, que acepta los atributos relativos al cartucho, excepto que el atributo de fecha podrá adoptar los siguientes valores:
    • una fecha al formato aaMMdd (ejemplo : 20090314) para especificar una fecha precisa;
    • “now” para utilizar la fecha de adición del esquema;
    • “null” ou “” para que no muestre la fecha;
  • “conductors”, que acepta los atributos relativos a conductores.

Esquema

Bajo el proyecto, se encuentra un esquema en forma elemento XML “diagram”. Éste acepta distintos atributos.

Atributos relativos al cartucho

Los atributos siguientes sirven para llenar el cartucho del esquema:

  • title : título indicado en el cartucho
  • author : autor indicado en el cartucho
  • date : fecha al formato AAMMDD, indicada en el cartucho
  • filename : nombre de fichero indicado en el cartucho. Este valor es estrictamente independiente del fichero que contiene el XML.
  • folio : Valor libre indicado en el cartucho.A partir de la versión 0.2, los valores siguientes se interpretan:
    • %id : Número del esquema en el proyecto
    • %total : Numero total de esquemas en el proyecto
Atributos relativos a las dimensiones del esquema

À partir de la versión 0.11, QElectroTech expresa las dimensiones de sus esquemas en líneas y columnas, y no mas en columnas y altura de columnas. Un esquema debe exhibir los siguientes atributos:

  • cols : número de columnas
  • colsize : ancho de columnas, en píxeles
  • rows : numero de lineas
  • rowsize : altura de líneas, en píxeles
  • height : atributo conservado para la retro compatibilidad; es igual a rows × rowsize
Atributos relativos a gráficos del esquema

A partir de la versión 0.11, es posible de indicar o no los encabezamientos de las líneas y columnas, gracias a los siguientes atributos:

  • displayrows : “true” para indicar los encabezamientos de las líneas, “false” para encubrirlos
  • displaycols : “true” para indicar los encabezamientos de las columnas, “false” para encubrirlos

Tenga en cuenta que el espacio ocupado por los encabezamientos no se elimina. Sólo su registro no se hizo. El elemento XML “diagram” acoge a continuación otros cuatro elementos: las propiedades de los conductores por defecto, los elementos, los conductores y los campos de texto.

Propiedades de los conductores por defecto

El élément XML “default conductor” (“conductor predeterminado”) permite especificar el tipo de conductores por defecto para este esquema. En efecto, cuando se trabaja sobre un esquema, el no utiliza generalmente un único tipo de conductor, con propiedades bien definidas. Es entonces aburrido de especificar para cada nuevo conductor que debe ser de tal tipo, con tales propiedades, etc. A tener en cuenta que esto no tiene influencia absolutamente en los gráficos del esquema, es sólo una indicación para un fácil manejo en el editor WYSIWYG QElectroTech.(Wysiwyg = lo que ves es lo que haces).

Los conductores pueden ser de tres tipos: simples (“simple”), unifilares (“single”) o multifilares (“multi”). Un conductor multifiliar posee un campo de texto que permite numerarlo. Un conductor unifilar no posee campo de texto sino enarbola símbolos que permiten determinar los hilos que representa. Un conductor simple ni símbolo ni campo de texto.

El elemento XML “default conductor” acepta el atributo “type” para definir el tipo de conductor. Si type vale “simple”, se ignorarán los otros atributos. Si type vale “multi”, el campo de texto contendrá el valor del atributo “num”. Si type vale “single”, el conductor enarbolará:

  • el símbolo neutro del atributo “neutral” vale “true”(“verdadero”)
  • el simbolo tierra del atributo “ground” vale “true” (“verdadero”)
  • 0 a 3 símbolo(s) fase según el valor del atributo “phase”: 0, 1, 2 o 3

Éléments

L'attribut XML “elements” regroupe la liste des éléments électriques qui apparaissent sur le schéma. Chaque élément XML “element” (ça y est, on va commencer à s'embrouiller) accepte les attributs suivants :

  • x : abscisse de la position de l'élément
  • y : ordonnée de la position de l'élément
  • type : il s'agit de l'adresse virtuelle de la définition de l'élément à placer sur le schéma
  • orientation : 0 (Nord), 1 (Est), 2 (Sud), 3 (Ouest)

Concernant le positionnement de l'élément, il s'agit de la position du “hotspot” (point de saisie) de l'élément, et non de son coin supérieur gauche ou de son barycentre. Cette position est donnée dans un repère orthonormal dont l'origine est situé en haut à droite de la fenêtre d'édition (pour information, le coin supérieur gauche du schéma est situé à 5px,5px), dont le vecteur x se dirige vers la droite et dont le vecteur y se dirige vers le bas.

Les adresses virtuelles commencent par :

  • common:// pour désigner un élément de la collection commune
  • custom:// pour désigner un élément de la collection de l'utilisateur.
  • embed:// pour désigner un élément embarqué dans le projet. Cette fonctionnalité est supportée à partir de la version 0.2.

À l'intérieur de chaque élément XML “element”, on peut trouver :

  • des bornes (éléments XML “terminal”) encapsulées dans un élément XML “terminals”
  • des champs de texte (éléments XML “input”) encapsulés dans un élément XML “inputs”
Bornes

Comme dans la définition d'un élément, une borne est définie par l'attribut XML “terminal” et exige les attributs “x”, “y” et “orientation” dans les coordonnées de l'élément. Ces attributs sont utilisés pour repérer la borne correspondante dans l'élément. L'attribut id permet de retrouver cette borne parmi toutes celles apparaissant sur le schéma. Il s'agit d'un entier positif. Il est impossible de relier un conducteur à une borne sans id. De même, il est impossible d'ajouter une borne à un élément sans éditer cet élément.

Champs de texte

Comme les bornes, les champs de texte (éléments XML “input”) exigent les attributs “x” et “y” dans les coordonnées de l'élément afin de repérer le champ de texte correspondant dans l'élément. Il n'est pas non plus possible d'ajouter un champ de texte non prévu dans la définition de l'élément. Le champ de texte ainsi repéré se verra attribué la valeur de l'attribut “text”.

Conducteurs

Encapsulés dans l'élément XML “conductors”, les conducteurs sont représentés par des éléments XML “conductor” (si !). Ils acceptent les mêmes attributs que l'élément XML “default conductor” pour définir leur type et leurs options. À cela s'ajoutent les attributs “terminal1” et “terminal2” qui doivent avoir pour valeur les ids des bornes que le conducteur relie.

Un conducteur est optionnellement composé de segments ( = éléments XML “segment”, si, si !) décrivant sa trajectoire. Si aucun segment n'est présent ou que la trajectoire décrite est incohérente, le logiciel repasse sur le trajet par défaut pour relier les deux bornes.

Un segment possède un attribut “orientation” qui peut prendre les valeurs “horizontal” ou “vertical” pour définir le sens du segment. Il possède également un attribut length définissant sa longueur. Les segments sont lus dans l'ordre et représentent la trajectoire de la borne 1 vers la borne 2.

Champs de texte indépendants sur le schéma

Encapsulés dans l'élément XML “inputs” situé sous l'élément XML “diagram”, les champs de texte sont représentés par des éléments XML (suspens…) “input” (vous avez eu peur hein ?). Contrairement aux “inputs” des éléments ou au “num” des conducteurs multifilaires, ils ne sont pas liés à un conducteur ou un élément et peuvent être positionnés librement sur le schéma.

L'élément XML “input” accepte les attributs suivants :

  • x : abscisse du coin supérieur gauche du champ de texte
  • y : ordonnée du coin supérieur gauche du champ de texte
  • text : contenu du champ de texte - utilisez 
 pour faire un retour à la ligne.

Collection embarquée

L'élément XML “collection” permet d'embarquer des éléments et catégories comme s'il s'agissait d'une collection d'éléments sur disque dur. Il n'accepte pas d'attribut particulier. Il peut contenir des éléments XML “category” et “element”.

L'élément XML “category” accepte un attribut name, utilisé pour désigner le nom de cette catégorie dans un chemin ; ainsi, embed://test désigne la catégorie “test” embarquée dans le projet courant. Une catégorie doit contenir une liste de noms humains, représentée par un élément XML “names”, contenant lui-même 1 à n noms, représentés par des éléments XML “name”. Celui-ci accepte l'attribut lang, avec pour valeur deux lettres représentant un langage humain (exemples : en pour english, fr pour français, es pour espagnol, etc.). Cet élément XML doit contenir le nom de l'élément électrique dans la langue correspondant à l'attribut lang.

Une catégorie peut également contenir :

  • 0 à n éléments XML “category”
  • 0 à n éléments XML “element”

L'élément XML “element” obéit aux règles décrites dans La structure XML utilisée pour décrire les éléments dans QElectroTech 0.2. À ces règles s'ajoute la présence d'un attribut name, utilisé pour désigner le nom de cet élément électrique dans un chemin ; ainsi, embed://test/nouvel_element.elmt désigne l'élément “nouvel_element.elmt”, situé dans la catégorie “test” de la collection embarquée du projet courant.

Exemple de collection embarquée :

    <collection>
        <category name="test" >
            <names>
                <name lang="en" >English test</name>
                <name lang="fr" ></name>
            </names>
            <element name="nouvel_element.elmt" >
                <definition width="30" version="0.2" hotspot_x="15" hotspot_y="35" height="70" type="element" orientation="dyyy" >
                    <names>
                        <name lang="en" >Quadrilateral</name>
                        <name lang="fr" >Quadrilatère</name>
                    </names>
                    <description>
                        <polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-7.25" y1="-1.5" x2="1.25" y2="-20.25" x3="10.5" y3="-0.5" x4="-1.5" y4="22" />
                    </description>
                </definition>
            </element>
        </category>
    </collection>
Imprimir/exportar