Opération de sauvegarde d'un document XML. More...
#include "xmlio.h"
Public Member Functions | |
XmlOutput () | |
Constructeur. More... | |
void | reset () |
Remise à zéro de la configuration de l'opération. More... | |
XmlOutput & | setOStream (std::ostream *ostream) |
Choix du flux de sortie. More... | |
XmlOutput & | setXmlDocument (XmlDocument const *xmldocument) |
Choix du document à écrire. More... | |
XmlOutput & | setAutoEmpty (bool ae) |
Choix de la configuration de sortie des balises vides. More... | |
XmlOutput & | setRoot (XmlDocument::Node const *root) |
Choix de la racine qui doit être sortie. More... | |
XmlOutput & | setEncoding (Encoding::Type enc) |
Choix de l'encodage de sortie. More... | |
XmlOutput & | setAutoNamespaces (bool an) |
Choix de la détection automatique des espaces de noms. More... | |
XmlOutput & | addNamespace (std::string const &nsid, std::string const &nsuri) |
Ajout d'un espace de noms. More... | |
XmlOutput & | clearNamespaces () |
Vide l'ensemble des espaces de noms connus. More... | |
void | run () |
Exécution de l'opération. More... | |
void | runFile (XmlDocument const &doc, std::string const &filename) |
Raccourci pour l'écriture d'un document dans un fichier. More... | |
void | runIterative () |
Commence une sortie de document par appels successifs à runNode(), runElementOpen() et runElementClose(). More... | |
void | runNode (XmlDocument::Node const &node) |
Execute une sortie du seul noeud passé. More... | |
void | runElementOpen (XmlDocument::Element const &elem) |
Execute une sortie du seul élément passé. More... | |
void | runElementClose (XmlDocument::Element const &elem) |
Execute une sortie du seul élément passé. More... | |
std::string | replaceSpecialChars (std::string const &s) |
Remplace les caractères spéciaux par les entités correspondantes. More... | |
bool | containsSpecialChars (std::string const &s) |
La chaîne contient-elle des caractères spéciaux qui l'empêchent d'être sortie comme nom d'élément/attribut. More... | |
Protected Member Functions | |
void | writeNode (XmlDocument::Node const &node, unsigned short tabs, bool cr=true, bool recurs=true) |
Ecriture d'un noeud (et de des fils) dans le flux de sortie. More... | |
void | writeNamespaces () |
Ecrit les déclarations d'espaces de noms. More... | |
void | writeName (std::string const &s) |
Ecrit une chaîne correspondant à un nom d'élément ou d'attribut. More... | |
void | writeRaw (std::string const &s) |
Ecrit une chaîne en faisant une éventuelle conversion d'encodage. More... | |
void | writeString (std::string const &s) |
Ecriture d'une chaîne (texte, élément, attribut, valeur). More... | |
void | writeCdata (std::string const &s) |
Ecriture d'une chaîne dans une section CDATA. More... | |
void | writeXmlDeclaration (XmlDocument::XmlDeclaration const &n, unsigned short tabs) |
Ecriture d'une noeud XmlDeclaration. More... | |
void | writeDoctypeDeclaration (XmlDocument::DoctypeDeclaration const &n, unsigned short tabs) |
Ecriture d'une noeud DoctypeDeclaration. More... | |
void | writeElement (XmlDocument::Element const &n, unsigned short tabs, bool recurs=true) |
Ecriture d'une noeud Element. More... | |
void | writeComment (XmlDocument::Comment const &n, unsigned short tabs) |
Ecriture d'une noeud Comment. More... | |
void | writeTabs (unsigned short tabs) |
Ecriture de tabulations. More... | |
Protected Attributes | |
std::ostream * | m_ostream |
Flux de sortie. | |
XmlDocument const * | m_xmldocument |
Document à écrire. | |
bool | m_autoempty |
Sortir les balises sans fils comme balises vides. More... | |
XmlDocument::Node const * | m_root |
Racine des balises à sortir. More... | |
Encoding::Type | m_encoding |
Encodage utilisé pour la sortie. More... | |
std::list< std::pair< std::string, std::string > > | m_namespaces |
Les espaces de noms utilisés dans l'opération de sortie. More... | |
bool | m_autonamespaces |
Détection automatique des espaces de noms lors de la sortie d'éléments. More... | |
bool | m_currentisempty |
Etat du dernier élément écrit dans le flux. More... | |
bool | m_currentcontainstext |
L'élément courant ne contient que du texte. More... | |
unsigned short | m_depth |
Profondeur actuelle. More... | |
Opération de sauvegarde d'un document XML.
cogitant::XmlOutput::XmlOutput | ( | ) |
Constructeur.
XmlOutput& cogitant::XmlOutput::addNamespace | ( | std::string const & | nsid, |
std::string const & | nsuri | ||
) |
Ajout d'un espace de noms.
nsid | identificateur de l'espace de noms. |
nsuri | URI de l'espace de noms. |
XmlOutput& cogitant::XmlOutput::clearNamespaces | ( | ) |
Vide l'ensemble des espaces de noms connus.
bool cogitant::XmlOutput::containsSpecialChars | ( | std::string const & | s | ) |
La chaîne contient-elle des caractères spéciaux qui l'empêchent d'être sortie comme nom d'élément/attribut.
std::string cogitant::XmlOutput::replaceSpecialChars | ( | std::string const & | s | ) |
Remplace les caractères spéciaux par les entités correspondantes.
void cogitant::XmlOutput::reset | ( | ) |
Remise à zéro de la configuration de l'opération.
void cogitant::XmlOutput::run | ( | ) |
Exécution de l'opération.
Le document est envoyé complètement sur le flux de sortie.
void cogitant::XmlOutput::runElementClose | ( | XmlDocument::Element const & | elem | ) |
Execute une sortie du seul élément passé.
void cogitant::XmlOutput::runElementOpen | ( | XmlDocument::Element const & | elem | ) |
Execute une sortie du seul élément passé.
void cogitant::XmlOutput::runFile | ( | XmlDocument const & | doc, |
std::string const & | filename | ||
) |
Raccourci pour l'écriture d'un document dans un fichier.
void cogitant::XmlOutput::runIterative | ( | ) |
Commence une sortie de document par appels successifs à runNode(), runElementOpen() et runElementClose().
void cogitant::XmlOutput::runNode | ( | XmlDocument::Node const & | node | ) |
Execute une sortie du seul noeud passé.
XmlOutput& cogitant::XmlOutput::setAutoEmpty | ( | bool | ae | ) |
Choix de la configuration de sortie des balises vides.
XmlOutput& cogitant::XmlOutput::setAutoNamespaces | ( | bool | an | ) |
Choix de la détection automatique des espaces de noms.
an | si true lors de l'écriture d'un noeud, les espaces de noms connus de l'opération sont cherchés dans les noms de l'élément et les noms des attributs. Les espaces de noms trouvés sont alors remplacés par leur identificateur, ce qui produit un fichier plus court, mais ralentit l'opération de sortie. |
XmlOutput& cogitant::XmlOutput::setEncoding | ( | Encoding::Type | enc | ) |
Choix de l'encodage de sortie.
enc | Si Encoding::DEFAULT, utilise l'encodage du document (celui présent dans la déclaration XML). Si celui-ci est absent, utilise l'encodage par défaut de l'application. Si enc est différent de Encoding::DEFAULT, utilise cet encodage-là (même si la déclaration XML du document contient autre chose). Pour l'instant seules les sorties en Latin9 et Utf-8 sont fonctionnelles. |
XmlOutput& cogitant::XmlOutput::setOStream | ( | std::ostream * | ostream | ) |
Choix du flux de sortie.
XmlOutput& cogitant::XmlOutput::setRoot | ( | XmlDocument::Node const * | root | ) |
Choix de la racine qui doit être sortie.
Si NULL, tout est sorti.
XmlOutput& cogitant::XmlOutput::setXmlDocument | ( | XmlDocument const * | xmldocument | ) |
Choix du document à écrire.
|
protected |
Ecriture d'une chaîne dans une section CDATA.
|
protected |
Ecriture d'une noeud Comment.
|
protected |
Ecriture d'une noeud DoctypeDeclaration.
|
protected |
Ecriture d'une noeud Element.
|
protected |
Ecrit une chaîne correspondant à un nom d'élément ou d'attribut.
|
protected |
Ecrit les déclarations d'espaces de noms.
|
protected |
Ecriture d'un noeud (et de des fils) dans le flux de sortie.
|
protected |
Ecrit une chaîne en faisant une éventuelle conversion d'encodage.
|
protected |
Ecriture d'une chaîne (texte, élément, attribut, valeur).
|
protected |
Ecriture de tabulations.
|
protected |
Ecriture d'une noeud XmlDeclaration.
|
protected |
Sortir les balises sans fils comme balises vides.
C'est à dire terminées par />
.
|
protected |
Détection automatique des espaces de noms lors de la sortie d'éléments.
Cela ralentit forcément la sortie.
|
protected |
L'élément courant ne contient que du texte.
(utilisé pour faire une sortie plus compacte : on ne passe pas à la ligne)
|
protected |
Etat du dernier élément écrit dans le flux.
true
ssi l'élément est vide (pour l'instant).
|
protected |
Profondeur actuelle.
|
protected |
Encodage utilisé pour la sortie.
|
protected |
Les espaces de noms utilisés dans l'opération de sortie.
Le premier élément de chaque pair est l'identifiant de l'espace de nom et le second élément l'URI.
|
protected |
Racine des balises à sortir.
Si NULL, tout est sorti.