XML, XML Schemas et XSLT

molgow

Membre expert
Club iGen
4 Janvier 2002
5 496
613
41
Suisse
Je viens de découvrir les XML Schemas ainsi que les XSLT (eXtensible Style Language Transformation), et je voulais juste dire que je trouvais ça vraiment sympa.

Je me demandais aussi si des personnes ici connaissent et utilisent ces technologies, et s'ils en sont contents ?!
 
Voici pour les curieux un petit exemple que je viens de réaliser :

Le XML Schemas (pareil qu'un DOCTYPE mais en mieux..) :
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="document">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="auteur">
					<xs:complexType name="DistanceToAccomodationType">
						<xs:sequence minOccurs="0">
							<xs:element name="nom" type="xs:string"/>
							<xs:element name="prenom" type="xs:string"/>
							<xs:element name="email" type="xs:string"/ minOccurs="0">
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="titre"/>
				<xs:element name="contenu"/>

			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

Un fichier XML d'exemple (instance du XML Schemas ci-dessus) :
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<document>
	<auteur>
		<nom>Dupond</nom>
		<prenom>Jean</prenom>
	</auteur>
	<titre>Un document de test</titre>
	<contenu>Ce document n'est utile que pour montrer la puissance de XML, XML Schemas et XSLT.</contenu>
</document>

Le fichier XSL qui sert à transformer un fichier XML en un autre fichier XML (en l'occurence du HTML dans notre cas) :
Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template match="/">
		<html>
		<head>
		<title>
		<xsl:value-of select=".//titre"/>
		</title>
		</head>
		<body bgcolor="#ffffff">
		<p>
		<xsl:value-of select=".//contenu"/>
		</p>
		</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

Le résultat après passage dans un processeur XSLT :
Bloc de code:
<html>
<head>
<title>Un document de test</title>
</head>
<body bgcolor="#ffffff">
<p>Ce document n'est utile que pour montrer la puissance de XML, XML Schemas et XSLT.</p>
</body>
</html>
 
ce qu'il y a d'interressant c'est aussi le traitement de tableaux

avec directement des appels foreach elements ecetera ce qui permet de créer des fichiers dynamiques xml en php et d'utiliser sa lib de transformation pour rendre differentes listes par exemple

à voir aussi la lib sablotron et xslt
 
plumber a dit:
à voir aussi la lib sablotron et xslt

Oui, malheureusement ces libs ne sont pas incluses par défaut dans PHP
frown.gif

Pour tester mes exemples, j'ai été obligé d'utiliser Xalan Java (un projet Apache).