Travailler avec des Objets de Données en Séquence
Des objets de données en Séquence sont des SDOs peuvent tracer l'ordre des propriétés à travers les propriétés des objets de données. Ils peuvent aussi contenir des éléments de texte non structuré (élément de texte qui n'appartient à aucune des propriétés SDO). Des objets de données en Séquence sont utiles pour travailler avec des documents XML qui permettent du texte non structuré (c'est-à-dire mixed=true) ou si les éléments peuvent être intercalée (
<A/><B/><A/>
Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.
Le schéma ci-dessous décrit le format d'une lettre. La lettre peut optionnellement contenir trois propriétés; date, prenom et nomFamille. Le schéma indique mixed="true" qui signifie que le texte non structuré peut être entremêlé entre les trois propriétés.
<?php $letter_seq = $letter->getSequence(); ?>
Tous les exemples suivants assument que la variable $lettre_seq a été assigné de la séquence pour l'objet de données de la lettre.
Exemple #2 Récupère/Fixe des valeurs de séquence
<?php
$letter_seq[4] = 'Snappy';
$text = $letter_seq[count($letter_seq) - 1];
?>
Exemple #3 Itération de Séquence
<?php
foreach ($letter->getSequence() as $value) {
// ...
}
?>
Exemple #4 Séquence versus Objet de Données
<?php $letter[2] = 'Smith'; $last_name = $letter_seq[5]; ?>
Exemple #5 Ajout à une séquence
<?php
// Ajoute une valeur prenom à la séquence
// valeur : 'Smith'
// index séquence : NULL (ajout)
// identifiant de propriété : 1 (index propriété prenom)
$lettre_seq->insert('Smith', NULL, 1);
// Ajoute une valeur nomFamille à la séquence
// valeur : 'Jones'
// index séquence : NULL (ajout)
// identifiant de propriété : 'nomFamille' (nom propriété nomFamille)
$lettre_seq->insert('Jones', NULL, 'nomFamille');
// Ajoute du texte non structuré
// valeur : 'Annule Inscription.'
// index séquence : absent (ajout)
// identifiant de propriété : absent (texte non structuré)
$lettre_seq->insert('Annule Inscription.');
// Ajoute du nouveau texte non structuré. Les séquence valeurs suivantes
// d'ordre sont décalées vers le haut
// valeur : 'À l'attention de :'
// index séquence : 1 (insert comme second élément)
// identifiant de propriété : absent (texte non structuré)
$lettre_seq->insert('À l'attention de :', 1);
?>
Exemple #6 Suppression d'une séquence
<?php
if (isset($letter_seq[0])) {
unset($letter_seq[0]);
}
?>