Sujet : interoperability
-
Pièges des nombres JSON : entiers au-delà de 2^53, NaN et Infinity, et décimaux exacts
La RFC 8259 laisse la précision des nombres à la discrétion des implémentations et interdit NaN et Infinity ; I-JSON (RFC 7493) recommande de rester dans les limites d'IEEE 754 binary64 et d'encoder sous forme de chaînes tout ce qui dépasse cette limite, comme les entiers 64 bits. Le module json de Python émet NaN par défaut et JSON.stringify de JavaScript le transforme en null : un JSON interopérable exige donc un contrat numérique explicite par champ.
-
XML aujourd'hui : bien formé face à valide, espaces de noms, et quand il reste le bon choix
Un document XML bien formé respecte la syntaxe ; un document valide satisfait en outre une DTD ou un schéma. Les espaces de noms donnent à chaque élément et attribut un nom étendu composé de l'URI de l'espace de noms et d'un nom local, liés par des déclarations xmlns dont les préfixes sont arbitraires et dont la forme par défaut ne s'applique pas aux attributs. XML reste le bon choix pour les documents à contenu mixte et pour les écosystèmes dont les vocabulaires et l'outillage sont déjà en XML.
Lisible par machine : JSON