ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(I/B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(I) (C/S) |
Paragraphe d'utilisation
Déclaration.
Syntaxe
XML_IDF NomIdentifiantXml SeparateurDecimal FmtDate FmtTime FmtTimestamp TypeIdentifiant
SeparateurDecimal |
→ |
*SEP_DEC(CarSep) | Rien |
FmtDate |
→ |
*FMT_DATE(FmtPredDate | FmtPersDate) | Rien |
FmtTime |
→ |
*FMT_TIME(FmtPredTime | FmtPersTime) | Rien |
FmtTimestamp |
→ |
*FMT_TMS(FmtPredTms | FmtPersTms) | Rien |
TypeIdentifiant |
→ |
*SEQ | Rien |
CarSep |
→ |
<Cste Alpha de longueur 1> | <Variable Alpha de longueur 1> |
FmtPredDate |
→ |
'*ISO' |'*EUR' | '*USA' |'*JIS' | '*SYS' |'*DMY' | '*MDY' |'*YMD' | '*JUL' | <variable alpha de longueur 4> |
FmtPredTime |
→ | '*ISO' |'*ISO8601' |'*EUR' | '*USA' |'*JIS' | '*HMS' |'*SYS' | <variable alpha de longueur 4> |
FmtPredTms |
→ | '*ISO8601_W/O_TZD' |
Les formats de date et de temps correspondent à ceux utilisés pour les fonctions &ALPHA_DATE et &ALPHA_TIME. Le format *ISO8601 est identique au format *HMS, et le format *ISO8601_W/O_TZD (ISO 8601 without Time Zone Designator) correspond à YYYY-MM-DDThh:mm:ss.nnnnnn (où la partie .nnnnnn peut être vide, ou aller jusqu'à 6 chiffres si des microsecondes sont présentes).
|
||
FmtPersDate |
→ |
<cste alpha de longueur 8 ou 10> | <variable alpha de longueur 8 ou 10> |
FmtPersTime |
→ |
<cste alpha de longueur 8 > | <variable alpha de longueur 8> |
FmtPersTms |
→ |
<cste alpha de longueur 23 ou 26> | <variable alpha de longueur 23 ou 26> |
Les formats personnalisés sont constitués des blocs : YYYY ou YY pour les années, MM pour les mois, DD pour les jours, HH pour les heures, mm pour les minutes, SS pour les secondes, et ssssss ou sss pour les millisecondes ou microsecondes. Un seul caractère séparateur est admis entre chaque bloc.
Description
Déclaration d'un identifiant XML de nom NomIdentifiantXml. Cette déclaration a une portée globale dans le code source. Cet identifiant ne peut pas être un paramètre (programme et procédure).
Le format *ISO est le format par défaut pour l'évaluation (conversion entre la valeur alphanumérique présente dans le fichier XML et le type Adélia) des types numériques, DATE, TIME et TIMESTAMP.
Les options *FMT_DATE, *FMT_TIME, *FMT_TMS permettent de définir des formats différents du format *ISO pour l'évaluation des valeurs numériques, DATE, TIME et TIMESTAMP.
L'option *SEP_DEC permet de définir un séparateur de décimales autre que le "."
Pour la plateforme Java, le format *SYS correspond au format *ISO.
TypeIdentifiant correspond au type d'ouverture souhaité du fichier XML. Par défaut l'ouverture est de type DOM (pas de valeur pour TypeIdentifiant) qui charge le fichier XML en mémoire et qui permet d'ouvrir le fichier en lecture comme en écriture et autorise l'utilisation de requêtes XPATH.
L'option *SEQ correspond à une ouverture de type lecture séquentielle où le fichier XML n'est pas chargé en mémoire et qui ne permet d'ouvrir le fichier qu'en lecture et de lire en séquence chacun des nœuds du fichier XML, et pour chaque nœud, de récupérer sa valeur et celle de ses attributs.
Remarques :
Le type *SEQ n'autorise que les ordres suivants :
- XML_OUVRIR en mode *LECTURE et sans l'option *VERIFIER
- XML_LIRE_AVANT
- XML_RECUP_VAL
- XML_FERMER
Le type *SEQ permet de lire de très gros fichiers XML car il ne charge pas en mémoire l'intégralité de l'arbre DOM (et un processus Windows 32 bits ne pouvant pas allouer plus de 2 Go de mémoire, certains très gros fichiers XML ne pouvaient être lus en DOM). En revanche, ce type séquentiel est moins puissant que le mode DOM car il n'autorise pas les requêtes XPATH.
Autre remarque : pour un programme donné, un même identifiant XML ne peut pas être utilisé dans des ordres XML à la fois dans une partie cliente et dans une partie serveur, ou dans des parties serveurs de serveurs logiques différents.
Utilisation des ordres XML dans un programme client Web
- Si l'application Web s'exécute sous une version 5.1 ou 6.0 de Websphere, indiquer dans la configuration Websphere de l'application, pour la propriété générale "Mode du chargeur de classe", la valeur PARENT_LAST au lieu de PARENT_FIRST.
En version 6.1 (ou supérieure), il n'y a rien à faire.
- Si l'application s'exécute sous une version de Tomcat travaillant avec un JDK 1.4 (normalement, version 4.1.x ou 5.0.x de Tomcat) :
- Si Tomcat est démarré en tant que service Windows, ou par startup.bat, copier dans le sous-dossier "common\endorsed" de Tomcat les fichiers se trouvant sous "%ADELIWS%\JDK\jre\lib\endorsed" de votre poste de développement.
- Si Tomcat est lancé par le raccourci de démarrage (ou l'option de menu) "Start Tomcat" (lancement via bootstrap.jar) :
- soit préciser la directive -Djava.endorsed.dirs="%ADELIWS%\JDK\jre\lib\endorsed" dans la commande de lancement Java utilisée,
- soit créer dans le dossier "lib" du JRE utilisé, un sous-dossier "endorsed" dans lequel seront copiés les fichiers se trouvant sous "%ADELIWS%\JDK\jre\lib\endorsed" de votre poste de développement.
Utilisation des ordres XML sous Java avec un JRE 1.4
Il faut mettre en "endorsed" (soit en créant un sous-dossier "endorsed" dans le dossier "lib" du JRE, soit en lançant la commande Java avec la directive -Djava.endorsed.dirs="xxxxx") les fichiers se trouvant sous "%ADELIWS%\JDK\jre\lib\endorsed" de votre poste développement.
Par exemple
XML_IDF Xml1
XML_IDF Xml2 *SEP_DEC(', ') *FMT_DATE('*EUR') *FMT_TMS('DD/MM/YYYY-HH:mm:SS.ssssss')
XML_IDF Xml3 *FMT_DATE('DD/MM/YYYY') *FMT_TIME('HH:mm:SS')