Page 1 sur 1

Ven 02/03/2012 - Actualités

Posté : ven. 2 mars 2012 10:18
par Xavier
Ven 02/03/2012 - Actualités


09:15

Le problème XML reporté par FBu est dû à une mauvaise utilisation du composant NativeXML qui est utilisé pour produire les fichiers XML.

En effet le service XT4 qui écrit un élément demande une écriture directe :
//------------------------------------------------------------------------------
// XSX_AddElement - Ajoute un élement
// 06/08/2011 - XT400
//------------------------------------------------------------------------------
function XSX_AddElement(XML_Parent: TXMLNode; Element_Name, Element_Value: String): TXMLNode;
begin
Result := XML_Parent.NodeNew(Element_Name);
Result.ValueDirect := Element_Value;
end;
Le composant lui-même propose soit l'écriture directe soit l'écriture Escaped :
property ValueDirect: string read FValue write FValue;
// ValueDirect is the exact text value as was parsed from the stream. If multiple
// text elements are encountered, they are added to ValueDirect with a CR to
// separate them.

property ValueAsString: string read GetValueAsString write SetValueAsString;
// ValueAsString returns the unescaped version of ValueDirect. All neccesary
// characters in ValueDirect must be escaped (e.g. "&" becomes "&") but
// ValueAsString returns them in original format. Always use ValueAsString to
// set the text value of a node, to make sure all neccesary charaters are
// escaped.

Ven 02/03/2012 - Actualités

Posté : ven. 2 mars 2012 10:28
par Xavier
09:25

Impeccable :
EscapedDisplay.png
EscapedStored.png
La lecture (qui est effectuée par un autre composant) se passe sans souci.

Ven 02/03/2012 - Actualités

Posté : ven. 2 mars 2012 19:25
par Xavier
18:20


Il a fallu préparer l'outil Identifiants (par copie / modification de Contacts) afin d'avoir une base réelle pour l'étude du Gestionnaire de données.

Il reste encore à implémenter la fonction Cacher la valeur, dont la solution n'est pas évidente car un Identifiant n'est pas un objet et n'a donc pas de Property.
Identifiers.png

Ven 02/03/2012 - Actualités

Posté : ven. 2 mars 2012 19:54
par Xavier
18:50

La structure des données Identifiant restera identique à celle des Contacts :
  • Le Contact ou le Groupe d'identifiant est un objet
  • Les Informations ou Identifiants qu'il contient sont des champs de cet objet.
Le stockage de l'attribut Valeur cachée ne se fera donc pas en passant les Identifiants en objets, mais en insérant une property Hidden qui contiendra une chaine représentant une liste des codes, à priori 0 pour visible et 1 pour caché.

C'est un peu éloigné du modèle idéal de donnée, mais c'est économe en espace disque. (Ce système "à l'ancienne" sera de toute façon utilisé pour stocker sur chaque dossier un code permettant de le rendre visible ou pas dans chaque outil, car c'est une relation "N vers N" et je ne compte pas créer des objets d'affectation.)

Code : Tout sélectionner

          <Data>
            <Model>IdentGroup</Model>
            <Properties>
              <Prop>State=Open</Prop>
              <Prop>Name=Site 1</Prop>
              <Prop>Hidden=001</Prop>
            </Properties>
            <Text>
              <Line>Adresse=http://www.website.com</Line>
              <Line>Identifiant=login</Line>
              <Line>Mot de passe=password</Line>
            </Text>
          </Data>