PureBasic - XML
Généralités
Cette bibliothèque permet de manipuler très facilement les fichiers XML, que ce soit en en lecture ou en écriture. Elle est basée sur expat qui est sous licence MIT consultable ici. Expat est déjà utilisée dans de nombreux projets d'envergures (comme Mozilla ou Perl), et est à la fois robuste et rapide.
Important: La licence d'expat est très permissive, et permet son utilisation gratuite dans n'importe quel type de projet (commercial ou non) à partir du moment ou le texte de la licence est fourni avec l'application lors de sa distribution. Donc si vous utilisez cette bibliothèque, vous devez inclure un fichier contenant la licence mentionnée ci-dessus.
Les fonctions d'Expat peuvent être utilisées directement dans PureBasic comme les autres fonctions API. Cependant vous devrez ajouter "pb_" au début des noms de fonctions en plus du caractère soulignement (_) à la fin. Cela permet de profiter des fonctionnalités d'expat qui ne sont pas directement fournies par cette bibliothèque. Les constantes et les structures définies dans expat.h sont aussi directement disponibles. Pour plus de détails sur les fonctions d'expat, consultez la documentation sur http://expat.sourceforge.net/
La bibliothèque supporte partiellement les 'Document Type Definitions' DTD et les espaces de noms. Le but est de garder l'ensemble des commandes très simple tout en permettant à cette bibliothèque de manipuler n'importe quel document XML.
Le parser de la bibliothèque expat est un analyseur syntaxique ("parser") non validant, ce qui signifie qu'il vérifie si les documents parsés comportent des erreurs dans les balises (un document doit être "bien formé" selon la norme XML), mais il ne valide pas le document par rapport à un DTD. En parsant le document cette bibliothèque place les DTDs dans un noeud spécifique de l'arbre XML en lui attribuant le type #PB_XML_DTD. Ce noeud contient la balise DOCTYPE complète. De cette manière on peut facilement y accèder et en manipuler le contenu mais on peut aussi l'ignorer si ces informations ne sont pas nécessaires. La balise est simplement recopiée quand le document est exporté ou sauvegardé.
Les espaces de noms ne sont pas résolus lors de l'analyse syntaxique du document ("parsing"). Cela signifie que dans un document utilisant des espaces de noms, ces espaces de noms sont accessibles comme des attributs de noeud normaux, et les noms des noeuds/attributs utilisant les espaces de noms seront visibles en tant que : "namespace:tagname" (i.e "espace_de_noms:balise"). Cela permet à un document utilisant les espaces de noms d'être lu et sauvegardé comme n'importe quel autre document sans détruire sa structure. Pour fonctionner avec des espaces de noms plus simples, les fonctions ResolveXMLNodeName() et ResolveXMLAttributeName() sont fournies pour résoudre les conflits éventuels de noms à l'intérieur des documents qui utilisent les espaces de noms.
Le débogueur PureBasic permet d'examiner les objets XML pendant l'exécution du programme à l'aide du visualisateur de bibliothèques.
La spécification officielle du XML et des Namespaces XML par le W3C est disponible ici:
Spécification XML
Namespaces XML
Traductions de divers documents relatifs au XML
XML sur Wikipedia fournit aussi une bonne introduction au XML.
Sommaire des commandes
CatchXML
ChildXMLNode
ComposeXML
CopyXMLNode
CreateXML
CreateXMLNode
DeleteXMLNode
ExamineXMLAttributes
ExportXML
ExportXMLSize
ExtractXMLArray
ExtractXMLList
ExtractXMLMap
ExtractXMLStructure
FormatXML
FreeXML
GetXMLAttribute
GetXMLEncoding
GetXMLNodeName
GetXMLNodeOffset
GetXMLNodeText
GetXMLStandalone
InsertXMLArray
InsertXMLList
InsertXMLMap
InsertXMLStructure
IsXML
LoadXML
MainXMLNode
MoveXMLNode
NextXMLAttribute
NextXMLNode
ParentXMLNode
ParseXML
PreviousXMLNode
RemoveXMLAttribute
ResolveXMLAttributeName
ResolveXMLNodeName
RootXMLNode
SaveXML
SetXMLAttribute
SetXMLEncoding
SetXMLNodeName
SetXMLNodeOffset
SetXMLNodeText
SetXMLStandalone
XMLAttributeName
XMLAttributeValue
XMLChildCount
XMLError
XMLErrorLine
XMLErrorPosition
XMLNodeFromID
XMLNodeFromPath
XMLNodePath
XMLNodeType
XMLStatus
Exemple
Xml.pb
Xml_Expat_API.pb
OS Supportés
Tous