java.net member

Rechercher dans ce site

Les opérations XML en Java partie 2

>> 13 June 2010

[FR]


Ce tutoriel utilise uniquement le JDK. Pas besoin d'autres installations

Question de validation
Pour parcourir un document et extraire ses composants, deux options sont disponibles, verifier la structure du document, ou bien être obligé de vérifier les éléments retournés et détecter des erreurs !!!

DTD règles de base
Il est possible de fournir les règles de vérification d'un document XML en utilisant "des grammaires" , une DTD par exemple insérée au sein même du document, ou à partir d'un fichier .dtd

Par exemple pour un fichier de templates Eclipse, on met la déclartion de DTD directement après l'en-tête " xml "

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE templates [
   <!ELEMENT templates (template)+>
   ...
]>

  • Le type de document dans la DTD doit avoir le nom de la racine (root)
  • Les élément contenus dans la racine sont spécifiés en utilisant des expressions régulières
  • Pour un fichier de templates, la racine est " templates " et contient un ou plusieur élément enfants " template " (sans s)

  • Chaque élément enfant contient un texte (le corps du template)

<!ELEMENT template (#PCDATA) >

  • Les templates (élément enfant) ont des attributs.

<!ATTLIST template context (javadoc|java) "java">

Un exemple de DTD (ce n'est pas une DTD réelle)

<!DOCTYPE templates [
   <!ELEMENT templates (template)+>
   <!ELEMENT template (#PCDATA) >
   <!ATTLIST template autoinsert (true|false) #REQUIRED>
 
   <!ATTLIST template context (javadoc|java) #REQUIRED>
   <!ATTLIST template deleted (true|false) #REQUIRED>
 
   <!ATTLIST template description CDATA #REQUIRED>
   <!ATTLIST template enabled  (true|false) #REQUIRED>
   <!ATTLIST template id ID #IMPLIED>
   <!ATTLIST template name CDATA #REQUIRED>
 
]>

Validation en utilisant Java
Pour valider un document en Java, il faut fournir une DTD du document et appeler la méthode setValidating(true) d'un objet DocumentBuilderFactory

Important :
Appelez la méthode setIgnoringElementContentWhitespace(true), pour éviter des exceptions. Cette méthode ignore les éspaces entre les éléments.

Exemple :
try {
  
    DocumentBuilderFactory     documentBuilderFactory=DocumentBuilderFactory.newInstance();
  
  
    documentBuilderFactory.setValidating(true);
    documentBuilderFactory.setIgnoringElementContentWhitespace(true);
  
      ...
      ..
     }
catch(Exception e)
{
...
}

0 comments:

Post a Comment

  © Blogger template Simple n' Sweet by Ourblogtemplates.com 2009

Back to TOP