<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_xml2enc

Langues Disponibles:  en  |  fr 

Description:Support avanc� de l'internationalisation et des jeux de caract�res pour les modules de filtrage bas�s sur libxml2
Statut:Base
Identificateur�de�Module:xml2enc_module
Fichier�Source:mod_xml2enc.c
Compatibilit�:Disponible depuis la version 2.4 du serveur HTTP Apache. Disponible en tant que module tiers dans les versions 2.2.x

Sommaire

Ce module fournit un support avanc� de l'internationalisation pour les modules de filtrage supportant les balises (markup-aware) comme mod_proxy_html. Il est capable de d�tecter automatiquement l'encodage des donn�es en entr�e et de s'assurer qu'elle sont trait�es correctement par l'interpr�teur libxml2, y compris la conversion en Unicode (UTF-8) si n�cessaire. Il peut aussi convertir les donn�es dans l'encodage de votre choix apr�s le traitement des balises, et s'assurera que le jeu de caract�res appropri� sera d�fini dans l'en-t�te HTTP Content-Type.

Directives

Sujets

top

Utilisation

Il existe deux sc�narios d'utilisation : le cas des modules programm�s pour travailler avec mod_xml2enc ; et les autres :

Modules de filtrages programm�s pour mod_xml2enc

Les modules comme mod_proxy_html versions 3.1 et sup�rieures utilisent la fonction optionnelle xml2enc_charset pour d�terminer la valeur de l'argument "jeu de caract�res" � transmettre � l'interpr�teur libxml2, et disposent de la fonction optionnelle xml2enc_filter pour effectuer un encodage ult�rieur �ventuel. L'utilisation de mod_xml2enc avec un module pr�programm� � cet effet ne n�cessite aucune configuration : ce dernier configurera mod_xml2enc pour vous (sachant que vous pouvez tout de m�me le personnaliser via les directives de configuration ci-dessous).

Modules de filtrages non programm�s pour mod_xml2enc

Pour utiliser mod_xml2enc avec un module bas� sur libxml2 qui n'a pas �t� explicitement programm� pour mod_xml2enc, vous devrez configurer la cha�ne de filtrage vous-m�me. Ainsi, pour utiliser mod_xml2enc avec un filtre foo fourni par un module mod_foo et pour am�liorer le support i18n de ce dernier avec HTML et XML, vous pouvez utiliser les directives suivantes :


    FilterProvider iconv    xml2enc Content-Type $text/html
    FilterProvider iconv    xml2enc Content-Type $xml
    FilterProvider markup   foo Content-Type $text/html
    FilterProvider markup   foo Content-Type $xml
    FilterChain     iconv markup
    

mod_foo supportera alors tout jeu de caract�re support� soit par libxml2, soit par apr_xlate/iconv, soit par les deux.

top

API de programmation

Les programmeurs de modules de filtrage bas�s sur libxml2 sont encourag�s � les pr�programmer pour mod_xml2enc, afin de fournir un support i18n solide aux utilisateurs sans avoir � r�inventer la roue. L'API de programmation est d�crite dans mod_xml2enc.h, et mod_proxy_html est un exemple de son utilisation.

top

D�tection et encodage

A la diff�rence de mod_charset_lite, mod_xml2enc est con�u pour travailler avec des donn�es dont l'encodage ne peut pas �tre connu, et donc configur�, � l'avance. Il utilise donc les techniques de 'reniflage' suivantes pour d�tecter le type d'encodage des donn�es HTTP :

  1. Si l'en-t�te HTTP Content-Type contient un param�tre charset, c'est ce dernier qui sera utilis�.
  2. Si les donn�es commancent par une balise XML concernant l'ordre des octets (BOM) ou par une d�claration d'encodage XML, c'est celle-ci qui sera utilis�e.
  3. Si un type d'encodage est d�clar� dans un �l�ment HTML <META>, c'est ce dernier qui sera utilis�.
  4. Si aucun des �l�ments pr�c�dents n'est trouv�, c'est la valeur par d�faut d�finie par la directive xml2EncDefault qui sera utilis�e.

Les conditions sont test�es dans cet ordre . D�s qu'une r�gle s'applique, elle est utilis�e et la d�tection est termin�e.

top

Codage en sortie

libxml2 utilise toujours UTF-8 (Unicode) en interne, et les modules de filtrage bas�s sur libxml2 utiliseront cet encodage en sortie par d�faut. mod_xml2enc peut modifier l'encodage en sortie via l'API, mais il n'y a actuellement aucun moyen de le configurer directement.

La modification de l'encodage en sortie ne devrait (du moins en th�orie) jamais �tre n�cessaire, et est m�me d�conseill�e � cause de la charge de traitement suppl�mentaire impos�e au serveur par une conversion non n�cessaire.

top

Codages non support�s

Si vous travaillez avec des encodages non support�s par aucune des m�thodes de conversion disponibles sur votre plateforme, vous pouvez tout de m�me leur associer un alias vers un code support� via la directive xml2EncAlias.

top

xml2EncAlias Directive

Description:D�finit des alias pour les valeurs d'encodage
Syntaxe:xml2EncAlias jeu-de-caract�res alias [alias ...]
Contexte:configuration du serveur
Statut:Base
Module:mod_xml2enc

Cette directive de niveau serveur permet de d�finir un ou plusieurs alias pour un encodage. Elle permet au support d'encodage de libxml2 de traiter en interne des encodages non reconnus par libxml2 en utilisant la table de conversion pour un encodage reconnu. Elle permet d'atteindre deux objectifs : supporter des jeux (ou noms) de caract�res non reconnus par libxml2 ou iconv, et �viter une conversion pour un encodage lorsque cela n'est pas n�cessaire.

top

xml2EncDefault Directive

Description:D�finit un encodage par d�faut � utiliser lorsqu'aucune information ne peut �tre automatiquement d�tect�e
Syntaxe:xml2EncDefault nom
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
Statut:Base
Module:mod_xml2enc
Compatibilit�:Disponible depuis la version 2.4.0 du serveur HTTP Apache ; disponible depuis un module tiers dans les versions ant�rieures.

Si vous traitez des donn�es dont l'encodage est connu, mais ne contenant aucune information � propos de ce dernier, vous pouvez d�finir une valeur par d�faut afin d'aider mod_xml2enc � traiter correctement les donn�es. Par exemple, pour d�finir la valeur par d�faut Latin1 (iso-8859-1 specifi�e dans HTTP/1.0), utilisez :

xml2EncDefault iso-8859-1
top

xml2StartParse Directive

Description:Indique � l'interpr�teur � partir de quelle balise il doit commencer son traitement.
Syntaxe:xml2StartParse �l�ment [�l�ment ...]
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
Statut:Base
Module:mod_xml2enc

Cette directive permet de sp�cifier � partir de quelle balise, parmi les �l�ments sp�cifi�s, l'interpr�teur de balise doit commencer son traitement. Ccei permet de contourner le probl�me des serveurs d'arri�re-plan qui ins�rent des �l�ments non conformes en d�but de donn�es, ce qui a pour effet de perturber l'interpr�teur (voir un exemple ici).

Elle ne doit �tre utilis�e ni pour les documents XML, ni pour les documents HTML correctement format�s.

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.