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/>
). Ceci peut se produire par exemple lorsque le schéma définit maxOccurs>1 sur un élément qui est un complexType avec un choix de l'ordre.

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]);
  }
?>

LoadingChargement en cours