XML

XML, XSD, XSLT…

Un document XML est un fichier stockage des données de manière arborescentes (similaire à HTML).
Un document XML doit respecter une XSD, définissant le sens de chaque tag et de chaque attribut, et la structure de ceux-ci.
Un document XML peut être mis en forme via un document XSLT, qui transforme le document XML (données brutes souvent) en un autre document XML, HTML ou texte.

Attributs utiles

Il existe évidemment beaucoup d'attributs plus en XML , mais les plus intéressants sont les suivants:
xml:base: indique l'URI de base du document et de tous ses enfants
xml:space: indique s'il faut conserver les espaces et tabulations (preserve) ou non (default)
xml:lang: indique la langue humaine dans laquelle le document est rédigé.
xml:standalone: indique au parser d'ignorer toute éventuelle DTD .

Namespaces

Namespaces XML standards, et leur XSD (non-officielle)
Langage Namespace Lien interne
(x)HTML 5 https://www.w3.org/1999/xhtml HTML 5
XLink https://www.w3.org/1999/xlink XLink
XSL https://www.w3.org/1999/XSL/Transform XSLT 2
SVG https://www.w3.org/2000/svg SVG
MathML http://www.w3.org/1998/Math/MathML cf MathML sur le MDN

XMLLint

L'utilitaire XMLLint permet de manipuler du XML en ligne de commande, de le valider par rapport à une XSD ou d'en extraire des morceaux via une XPath.

MathML

Le langage MathML (basé sur XML) permet de créer et d'afficher des formules mathématiques complexes et poussées. Très utile donc pour les formules de votre gameplay, mais attention: ce langage est très verbeux, et pas toujours bien supporté!

p  prime f ( p ) = t > 1 f ( t ) d π ( t )
Un exemple de formule écrite en MathML…
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <munder> <mo>&sum;</mo> <mrow> <mi>p</mi> <mtext>&nbsp;prime</mtext> </mrow> </munder> <mi>f</mi> <mo stretchy="false">(</mo> <mi>p</mi> <mo stretchy="false">)</mo> <mo>=</mo> <msub> <mo stretchy="false">∫</mo> <mrow> <mi>t</mi> <mo>&gt;</mo> <mn>1</mn> </mrow> </msub> <mi>f</mi> <mo stretchy="false">(</mo> <mi>t</mi> <mo stretchy="false">)</mo> <mspace width="thinmathspace"></mspace> <mi>d</mi> <mi>π</mi> <mo stretchy="false">(</mo> <mi>t</mi> <mo stretchy="false">)</mo> </mrow> </math>
…et le code MathML pour écrire cette formule