Soit le schéma ci-après permettant de gérer un portefeuille d'UV dans une université.
<?xml version="1.0" encoding="UTF-8"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<element name="portfolio">
<oneOrMore>
<element name="uv">
<element name="titre"><text/></element>
<optional>
<element name="description"><text/></element>
</optional>
<optional>
<element name="niveau">
<choice>
<value>maîtrise</value>
<value>bases</value>
</choice>
</element>
</optional>
</element>
</oneOrMore>
</element>
</start>
</grammar>
Produisez un fichier XML valide par rapport à ce schéma permettant de décrire un portfolio de trois UV.
<?xml version="1.0" encoding="UTF-8"?>
<portfolio>
<uv>
<titre>NF17</titre>
<description>Conception des bases de données relationnelles et non-relationnelles</description>
<niveau>maîtrise</niveau>
</uv>
<uv>
<titre>NF29</titre>
<description>Ingénierie documentaire</description>
</uv>
<uv>
<titre>LO17</titre>
<niveau>bases</niveau>
</uv>
</portfolio>
Proposez un XPath permettant de trouver votre niveau en NF17.
/portfolio/uv[titre="NF17"]/niveau
Proposer un programme XSLT permettant de publier un portfolio en HTML.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/portfolio">
<html>
<head>
<title>Portfolio</title>
<meta content="text/html" charset="UTF-8"/>
</head>
<body>
<xsl:apply-templates select="uv"/>
</body>
</html>
</xsl:template>
<xsl:template match="uv">
<h1><xsl:value-of select="titre"/> (<xsl:value-of select="niveau"/>)</h1>
<p><xsl:value-of select="description"/></p>
</xsl:template>
</xsl:stylesheet>