msgstr "Le Document Object Model, ou \"DOM,\" est une API inter-langage du World Wide Web Consortium (W3C) pour accéder et modifier les documents XML. Une implémentation DOM présente le document XML comme un arbre ou autorise le code client à construire une telle structure depuis zéro. Il permet alors d'accéder à la structure à l'aide d'un semble d'objet qui fournisse des interfaces bien connues."
msgstr "Le DOM est extrêmement utile pour les applications à accès aléatoire. SAX ne vous permet de visualiser qu'un seul morceau du document à la fois. Si vous regardez un élément SAX, vous n'avez pas accès à un autre. Si vous regardez un nœud de texte, vous n'avez pas accès à un élément parent. Lorsque vous écrivez une application SAX, vous devez suivre la position de votre programme dans le document quelque part dans votre propre code. SAX ne le fait pas pour vous. De plus, si vous devez regarder de l'avant dans le document XML, vous n'avez pas de chance."
msgstr "Certaines applications sont simplement impossible avec un modèle événementiel sans accès à un arbre. Bien sûr, vous pourriez construire vous même un arbre à partir des événements SAX mais DOM vous permet d'éviter d'écrire ce code. Le DOM est représentation standard en arbre pour des données XML."
msgstr "Le DOM (Document Object Model) est défini par le W3C en étapes ou *\"levels\"* (niveaux) selon leur terminologie. Le couplage de l'API de Python est essentiellement basée sur la recommandation DOM Level 2."
msgstr "Typiquement, les applications DOM commencent par parser du XML dans du DOM. Comment cela est fait n'est absolument pas décrit par DOM Level 1 et Level 2 ne fournit que des améliorations limités. Il existe une classe :class:`DOMImplementation` qui fournit un accès à des méthodes de création de :class:`Document` mais il n'y a pas de moyen d'accéder à un lecteur/parseur/constructeur de :class:`Document` de façon indépendante de l'implémentation. Il n'est pas également très bien définis comment accéder à ces méthodes sans un objet :class:`Document`. En Python, chaque implémentation fournira une fonction :func:`getDOMImplementation` . DOM Level 3 ajoute une spécification *Load/Store* (charge/stocke) qui définie une interface pour le lecteur mais qui n'est pas disponible dans la bibliothèque standard de Python."
msgstr "Une fois que vous avec un objet document DOM, vous pouvez accéder aux parties de votre document XML à travers ses méthodes et propriétés. Ces propriétés sont définis dans les spécifications DOM ; cette portion du manuel de références décrit l'interprétation des ces spécifications en Python."
msgstr "Les spécifications fournies par le W3C définissent les API DOM pour Java, ECMAScript, et OMG IDL. Les correspondances de Python définies ici sont basées pour une grande part sur la version IDL de la spécification mais une conformité stricte n'est pas requise (malgré que ces impléméntations soient libre d'implénter le support strict des correspondances de IDL). Voir la section :ref:`dom-conformance` pour une discussion détaillée des pré-requis des correspondances."
msgstr "Enregistre la fonction *factory* avec le nom *name*. La fonction *factory* doit renvoyer un object qui implémente l'interface de :class:`DOMImplementation`. La fonction *factory* peut renvoyer le même objet à chaque fois ou un nouveau à chaque appel en accord avec la spécification spécifique (Par exemple si l'implémentation support certaine personalisation)."
msgstr "Renvoie une implémentation DOM appropriée. Le *name* est soit connu, soit le nom du module d'une implémentation DOM, soit ``None``. Si ce n'est pas ``None``, importe le module correspondant et retourne un object :class:`DOMImplementation` si l'import réussit. Si Aucun *name* n'est donné et que la variable d'environnement :envvar:`PYTHON_DOM` est positionnée, cette variable est utilisé pour trouver l'implémentation."
msgstr "Si *name* n'est pas donné, la fonction examine les implémentations disponibles pour en trouver une avec l'ensemble des fonctionnalités requises. Si aucune implémentation n'est trouvé, une :exc:`ImportError` est levée. La liste de fonctionnalité doit être une séquence de paires ``(feature, version)`` qui est passée à la méthode :meth:`hasFeature` disponible dans les objets :class:`DOMImplementation`."
msgstr "La valeur utilisée pour indiquer qu'aucun espace de nom n'est associé à un nœud dans le DOM. Typiquement, ceci est trouvé comme :attr:`namespaceURI` dans un nœud ou utilisé comme le paramètre *namespaceURI* dans une méthode spécifique aux espaces de nom."
msgstr "L'URI de l'espace de nom associé avec le préfixe réservé ``xml`` comme défini par `Namespaces in XML <https://www.w3.org/TR/REC-xml-names/>`_ (section 4)."
msgstr "L'URI de l'espace de nom pour la déclaration des espaces de noms, tel que défini par `Document Object Model (DOM) Level 2 Core Specification <https://www.w3.org/TR/DOM-Level-2-Core/core.html>`_ (section 1.1.8)."
msgstr "L'URI de l'espace de nom XHTML tel que défini par `XHTML 1.0: The Extensible HyperText Markup Language <https://www.w3.org/TR/xhtml1/>`_ (section 3.1.1)."
msgstr "Par ailleurs, :mod:`xml.dom` contient une classe de basse :class:`Node` et les exceptions de DOM. La classe :class:`Node` fournie par ce module n'implémente aucune des méthodes ou des attributs définis par les spécifications DOM; les implémentations concrètes des DOM doivent fournir les informations suivantes. La classe :class:`Node` fournie part ce modules fournit les constantes utilisées pour l'attribut :attr:`nodeType` pour des objets concrets :class:`Node`; ils sont situés dans les classes plutôt qu'au niveau du module en accord avec les spécifications DOM."
msgstr "Notez que les attributs DOM peuvent également être manipulés comme des nœuds au lieu de simples chaînes. Il est relativement rare que vous ayez besoin de faire cela, cependant, cet usage n'est pas encore documenté."
msgstr "L'interface :class:`DOMImplementation` fournit un moyen pour les applications de déterminer la disponibilité de fonctionnalités particulières dans le DOM qu'elles utilisent. *DOM Level 2* ajoute la capacité de créer des nouveaux objets :class:`Document` et :class:`DocumentType` utilisant également :class:`DOMImplementation`."
msgstr "Renvoie un nouvel objet :class:`Document` (la racine du DOM), avec un objet fils :class:`Element` ayant les *namespaceUri* et *qualifiedName* passés en paramètre. Le *doctype* doit être un objet :class:`DocumentType` créé par :meth:`createDocumentType` ou ``None``. Dans l'API DOM de Python, les deux premiers arguments peuvent également être à ``None`` de manière à indiquer qu'aucun enfant :class:`Element` ne soit créer."
msgstr "Renvoie un nouvel objet :class:`DocumentType` qui encapsule les chaînes *qualifiedName*, *publicId*, et *systemId* passées en paramètre représentant les informations contenues dans dans la déclaration du document XML."
msgstr "Un entier représentant le type de nœud. Pour l'objet :class:`Node`, les constantes symboliques pour les types sont :const:`ELEMENT_NODE`, :const:`ATTRIBUTE_NODE`, :const:`TEXT_NODE`, :const:`CDATA_SECTION_NODE`, :const:`ENTITY_NODE`, :const:`PROCESSING_INSTRUCTION_NODE`, :const:`COMMENT_NODE`, :const:`DOCUMENT_NODE`, :const:`DOCUMENT_TYPE_NODE`, :const:`NOTATION_NODE`. Ceci est un attribut en lecture seule."
msgstr "Le parent du nœud courant ou ``None`` dans le cas du nœud document. La valeur est toujours un objet :class:`Node` ou ``None``. Pour les nœuds :class:`Element`, ce sera le parent de l'élément sauf si l'élément est la racine, dans ce cas ce sera l'objet :class:`Document`. Pour les nœuds :class:`Attr`, cela sera toujours ``None``. Ceci est un attribut en lecture seule."
msgstr "Un objet :class:`NamedNodeMap` d'objet attributs. Seulement les éléments ayant des valeurs seront listés, les autres renverront ``None`` pour cet attribut. Cet attribut est en lecture seule."
msgstr "Le nœud avec le même parent qui précède immédiatement le nœud courant. Par exemple, l'élément avec la balise fermente qui est juste avant la balise ouvrante de l'élément *self*. Naturellement, les documents XML sont fait de plus que juste des éléments ; donc le *previous sibling* peut être du texte, un commentaire ou autre chose. Si le nœud courant est le premier fils du parent, cet attribut vaudra ``None``. Cet attribut est en lecture seule."
msgstr "Le nœud qui suit immédiatement le nœud courant dans le même parent. Voir également :attr:`previousSibling`. Si ce nœud est le dernier de son parent, alors l'attribut sera ``Ǹone``. Cet attribut est en lecture seule."
msgstr "S'il y a un *:*, contient la partie suivante de :attr:`tagName` ce *:* sinon la valeur complète de :attr:`tagName`. Cette valeur est une chaîne."
msgstr "L'attribut a un sens différent pour chaque type de nœud; se reporter à la spécification DOM pour les détails. Vous obtiendrez toujours l'information que vous obtiendrez à l'aide d'une autre propriété comme :attr:`tagName` pour les éléments ou :attr:`name` pour les attributs. Pour tous les types de nœuds, la valeur sera soit une chaîne soit ``None``. Cet attribut est en lecture seule."
msgstr "L'attribut a un sens différent pour chaque type de nœud; se reporter à la spécification DOM pour les détails. La situation est similaire à :attr:`nodeName`. La valeur est une chaîne ou ``None``."
msgstr "Renvoi vrai si *other* fait référence au même nœud que le nœud courant. Ceci est particulièrement utile pour implémentation de DOM qui utilise une architecture proxy (car plus d'un objet peut se référer au même nœud)."
msgstr "Ceci est basé sur l'API proposé par * DOM Level 3* qui est toujours à l'étape \"*working draft*\" mais cette interface particulière ne parait pas controversée. Les changement du W3C n'affecteront pas nécessairement cette méthode dans l'interface DOM de Python. (bien que toute nouvelle API W3C à cet effet soit également supportée)."
msgstr "Ajoute un nouveau nœud fils à ce nœud à la fin de la liste des fils renvoyant *newChild*. Si ce nœud est déjà dans l'arbre, il sera d'abord retiré."
msgstr "Insère un nouveau nœud fils avant un fils existant. Il est impératif que *refChild* soit un fils du nœud, sinon :exc:`ValueError` sera levée. *newChild* est renvoyé. Si *refChild* est ``None``, *newChild* est inséré à la fin de la liste des fils."
msgstr "Retire un nœud fils. *oldChild* doit être un fils de ce nœud; sinon :exc:`ValueError` sera levée. En cas de succès, *oldChild* est renvoyé. Si *oldChild* n'est plus utilisé, sa méthode :meth:`unlink` doit être appelée."
msgstr "Jointe les nœuds texte adjacents de manière à ce que tous les segments de texte soient stockés dans une seule instance de :class:`Text` instances. Ceci simplifie le traitement du texte d'un arbre DOM pour de nombreuses applications."
msgstr ":class:`NodeList` représente une séquence de nœuds. Ces objets sont utilisés de deux manières dans la recommandation Dom Core: un objet :class:`Element` fournit en fournis liste des nœud fils et les méthodes :meth:`getElementsByTagName` et :meth:`getElementsByTagNameNS` de :class:`Node` renvoient des objet avec cette interface pour représenter les résultats des requêtes."
msgstr "Renvoie le *i*eme élément de la séquence s'il existe ou ``None``. L'index *i* ne peut pas être inférieur a 0 ou supérieur ou égale à la longueur de la séquence."
msgstr "En plus, l'interface DOM de Python requiert quelques ajouts supplémentaires pour permettre que les objet :class:`NodeList` puissent être utilisés comme des séquences Python. Toutes les implémentations de :class:`NodeList` doivent inclure le support de :meth:`~object.__len__` et de :meth:`~object.__getitem__`; ceci permet l'itération sur :class:`NodeList` avec l'instruction :keyword:`for` et un support de la fonction native :func:`len`."
msgstr "Si une implémentation de DOM support les modifications du document, l'implémentation de :class:`NodeList` doit également supporter les méthodes :meth:`~object.__setitem__` et :meth:`~object.__delitem__` ."
msgstr "Un chaîne donnant le sous ensemble complet du document. Ceci n'inclut pas les chevrons qui englobe le sous ensemble. Si le document n'a pas de sous ensemble, cela devrait être ``None``."
msgstr "Ceci est un :class:`NamedNodeMap` donnant les définitions des entités externes. Pour les entités définies plusieurs fois seule la première définition est fournis (les suivantes sont ignorées comme requis par la recommandation XML). Ceci peut retourner ``None`` si l'information n'est pas fournie au parseur ou si aucune entités n'est définis."
msgstr "Ceci est un :class:`NamedNodeMap` donnant la définition des notation. Pour les notations définis plus d'une fois, seule la première est fournie (les suivante sont ignorées comme requis par la recommandation XML). Ceci peut retourner ``None`` si l'information n'est pas fournie au parseur ou si aucune entités n'est définis."
msgstr "Un :class:`Document` représente un document XML en son entier, incluant les éléments qui le constitue les attributs, les *processing instructions*, commentaires, etc. Rappelez vous qu'il hérite des propriété de :class:`Node`."
msgstr "Créé et renvoi un nouveau nœud élément. Ce n'est pas inséré dans le document quand il est créé. Vous avez besoin de l'insérer explicitement avec l'une des autres méthodes comme :meth:`insertBefore` ou :meth:`appendChild`."
msgstr "Créé et renvoi un nouvel élément avec un *namespace*. Le *tagName* peut avoir un préfixe. L'élément ne sera pas insérer dans le document quand il est créé. Vous avez besoin de l'insérer explicitement avec l'une des autres méthodes comme :meth:`insertBefore` ou :meth:`appendChild`."
msgstr "Créé et renvoi un nœud texte contenant les *data* passées en paramètre. Comme pour les autres méthodes de création, la méthode n'insère pas le nœud dans l'arbre."
msgstr "Créé et renvoi un nœud comentaire contenant les *data* passé en commentaire. Comme pour les autres méthodes de création, la méthode n'insère pas le nœud dans l'arbre."
msgstr "Créé et retourne un nœud *processing instruction* contenant les *target* et *data* passés en paramètres. Comme pour les autres méthodes de création, la méthode n'insère pas le nœud dans l'arbre."
msgstr "Créé et renvoi un nœud attribut. Cette méthode n'associe le nœud attribut aucun nœud en particulier. Vous devez utiliser la méthode :meth:`setAttributeNode` sur un objet :class:`Element` approprié pour utiliser une instance d'attribut nouvellement créé."
msgstr "Créé et renvoi un nœud attribut avec un *namespace*. Le *tagName* peut avoir un préfixe. Cette méthode n'associe le nœud attribut aucun nœud en particulier. Vous devez utiliser la méthode :meth:`setAttributeNode` sur un objet :class:`Element` approprié pour utiliser une instance d'attribut nouvellement créé."
msgstr "Cherche tous les descendants (fils directs, fils de fils, etc.) avec un *namespace URI* particulier et un *localName*. Le *localName* fait parti du *namespace* après le préfixe."
msgstr "Retourne la valeur de l'attribut nommé par *name* comme une chaîne. Si un tel attribue n'existe pas, une chaîne vide est retournée comme si l'attribut n'avait aucune valeur."
msgstr "Renvoi la valeur de l'attribut nommé par *namespaceURI* et *localName* comme une chaîne. Si un tel attribue n'existe pas, une chaîne vide est retournée comme si l'attribut n'avait aucune valeur."
msgstr "Retire un attribut selon son nom. Notez qu'il utilise un *localName* et nom un *qname*. Aucune exception n'est levée s'il n'y a pas d'attribut correspondant."
msgstr "Ajoute un nouveau nœud attribut à l'élément, remplaçant un attribut existant si nécessaire si :attr:`name` corresponds à un attribut. S'il a remplacement, l'ancien attribut sera retourné. Si *newAttr* est déjà utilisé, :exc:`InuseAttributeErr` sera levée."
msgstr "Ajoute un nouveau nœud attribut, remplaçant un attribut existant si :attr:`namespaceURI` et :attr:`localName` corresponds à un attribut. S'il y a remplacement, l'ancien nœud sera renvoyé. Si *newAttr* est déjà utilisé, :exc:`InuseAttributeErr` sera levée."
msgstr "Assigne la valeur d'un attribut depuis une chaîne étant donnée un *namespaceURI* et un *qname*. Notez que *qname* est le nom de l'attribut en entier. Ceci est différent d'au dessus."
msgstr "Renvoi un attribut à un index particulier. L'ordre des attribut est arbitraire mais sera constant durant toute la vie du DOM. Chacun des item sera un nœud attribut. Obtenez sa valeur avec :attr:`value` de l'attribut."
msgstr "Il y existe également des méthodes expérimentales qui donne à cette classe un comportement plus *mappable*. Vous pouvez les utiliser ou utiliser la famille de méthode standardisés :meth:`getAttribute\\*` des objets :class:`Element`."
msgstr "Le contenu du commentaire comme une chaîne. L'attribut contient tous les caractères entre ``<!-``\\ ``-`` et ``-``\\ ``->`` mais ne les inclues pas."
msgstr "L'interface :class:`Text` représente le texte dans un document XML. Si le parseur et l'implémentation DOM supporte les extensions XML du DOM, les portion de texte encapsulées dans des section marquées CDATA seront stockées dans des objets :class:`CDATASection`. Ces deux interfaces sont identiques mais fournissent des valeurs différentes pour l'attribut :attr:`nodeType`."
msgstr "L'utilisation d'un nœud :class:`CDATASection` n'indique pas que le nœud représente une section complète marquée CDATA, seulement que le contenu du nœud est le contenu d'une section CDATA. Une seule section CDATA peut représenter plus d'un nœud dans l'arbre du document. Il n'y a aucun moyen de déterminer si deux nœuds :class:`CDATASection` adjacents représentent différentes sections CDATA."
msgstr "La recommandation *DOM Level 2* définie une seule exception :exc:`DOMException` et un nombre de constantes qui permettent aux applications à déterminer quelle type d'erreur s'est produit. Les instances de :exc:`DOMException` ont un attribut :attr:`code` qui fourni une valeur approprié pour une exception spécifique."
msgstr "L'interface DOM de Python fournit des constant mais également étends un ensemble d'exception pour qu'il existe une exception spécifique pour chaque code d'exception défini par le DOM. L'implémentation doit lever l'exception spécifique appropriée. Chacune ayant la valeur appropriée pour l'attribut :attr:`code`."
msgstr "Levée quand un intervalle spécifique de texte ne rentre pas dans une chaîne. Cette exception n'est pas réputée être utilisé par les implémentations DOM de Python mais elle peur être levée par des implémentations de DOM qui ne sont pas écrite en Python. "
msgstr "Cette exception est levée quand un paramètre chaîne contient un caractère qui n'est pas autorisé dans le contexte utilisé par la recommandation XML 1.0. Par exemple, lors la tentative de création d'un nœud :class:`Element` avec un espace de le nom de l'élément."
msgstr "Si une tentative est faite de changer un objet d'une manière qui n'est pas autorisé selon la recommandation `Namespaces in XML <https://www.w3.org/TR/REC-xml-names/>`_ , cette exception est levée."
msgstr "Exception quand un nœud n'existe pas dans le contexte référencé. Par exemple, :meth:`NamedNodeMap.removeNamedItem` lèvera cette exception si le nœud passé n'appartient pas à la séquence."
msgstr "Levée quand un nœud est inséré dans un document différent de celui auquel il appartient et que l'implémentation ne supporte pas la migration d'un document à un autre."
msgstr "Cette section décrit la conformité des pré requis et des relations entre l'API DOM de Python, les recommandations W3C DOM et les correspondances OMG IDL pour Python."
msgstr "Les correspondance de OMG IDL vers Python définissent des des fonction d'accès pour les déclarations ``attribut`` d'IDL à la manière dont Java le fait. Correspondance des déclarations IDL ::"
msgstr "Donne trois fonctions d'accès: une méthode \"get\" pour :attr:`someValue` (:meth:`_get_someValue`) et des méthodes \"get\" et \"set\" pour :attr:`anotherValue` (:meth:`_get_anotherValue` et :meth:`_set_anotherValue`). Le *mapping*, en particulier, ne requiert pas que les attributs IDL soient accessible comme des attributs Python normaux : ``object.someValue`` n'est *pas* requis de fonctionner et peut lever une :exc:`AttributeError`."
msgstr "Dans l'API DOM de Python, les fonctions d'accès ne sont pas requises. Si elles sont fournies, elles doivent prendre la forme définie par le *mapping* de Python IDL, mais ces méthodes sont considérées inutiles car les attributs sont directement accessible depuis Python. Les fonctions d'accès \"Set\" ne devraient jamais être fournies pour les attributs ``readonly`` (en lecture seule)."
msgstr "Les définitions IDL n'embarque pas entièrement les pré-requis de l'API de DOM API telle que la notion de objets ou que la valeur de retour de :meth:`getElementsByTagName` est dynamique. L'API DOM de Python ne requiert pas des implémentations de d'avoir de tel pré-requis."