<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:harry="http://www.owl-ontologies.com/harrypotter.owl#" version="1.0">
    <xsl:output method="html" encoding="UTF-8" indent="no"/>
    <xsl:param name="personne"/>
    <xsl:variable name="varpersonne">#<xsl:value-of select="$personne"/>
    </xsl:variable>
    <xsl:template match="/">
        <html>
            <head>
                <title>
                    <xsl:value-of select="//rdf:Description[@rdf:about=$varpersonne]/rdfs:label"/>
                </title>
            </head>
            <body>
                <xsl:for-each select="//rdf:Description[@rdf:about=$varpersonne]">
                    <h1>
                        <xsl:value-of select="rdfs:label"/>
                    </h1>
                    <p>
                        <xsl:call-template name="sexe"/> <xsl:call-template name="classe"/>
                    </p>
                    <xsl:call-template name="maison"/>
                    <xsl:call-template name="enseignement"/>
                    <xsl:call-template name="parents"/>
                    <xsl:call-template name="enfants"/>
                    <xsl:call-template name="amis"/>
                    <xsl:call-template name="ennemis"/>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
    <xsl:template name="sexe">
        <xsl:if test="harry:Sexe">
            <xsl:value-of select="harry:Sexe"/>.
        </xsl:if>
    </xsl:template>
    <xsl:template name="maison">
        <xsl:choose>
            <xsl:when test="self::node()[harry:membre_de][harry:dirige]">
                Directeur de la maison de
                <xsl:variable name="maison" select="harry:membre_de/@rdf:resource"/><a href="maison.php?maison={substring-after($maison,'#')}"><xsl:value-of
                    select="//rdf:Description[@rdf:about=$maison]/rdfs:label[@xml:lang='fr']"/>
                </a>
            </xsl:when>
            <xsl:when test="harry:membre_de">
                <xsl:variable name="maison" select="harry:membre_de/@rdf:resource"/> Membre de la
                maison de <a href="maison.php?maison={substring-after($maison,'#')}"><xsl:value-of
                    select="//rdf:Description[@rdf:about=$maison]/rdfs:label[@xml:lang='fr']"/>
                </a>
            </xsl:when>
        </xsl:choose>
    </xsl:template>
    <xsl:template name="enseignement">
        <xsl:if test="harry:enseigne">
            <p>
                Discipline enseignée :
                <ul>
                    <xsl:for-each select="harry:enseigne"><xsl:variable name="enseignement" select="@rdf:resource"/>
                        <li><xsl:value-of
                        select="//rdf:Description[@rdf:about=$enseignement]/rdfs:label"/></li>
                    </xsl:for-each>
                </ul>
            </p>
        </xsl:if>
    </xsl:template>
    <xsl:template name="classe">
        <xsl:variable name="classe" select="rdf:type/@rdf:resource"/>
        <xsl:value-of select="//rdf:Description[@rdf:about=$classe]/rdfs:label"/>
    </xsl:template>
    <xsl:template name="parents">
        <xsl:if test="harry:enfant_de">
            <p>Parents :</p>
            <ul>
                <xsl:for-each select="harry:enfant_de">
                    <xsl:variable name="parent" select="@rdf:resource"/>
                    <li>
                        <a href="personne.php?personne={substring-after($parent,'#')}">
                        <xsl:value-of select="//rdf:Description[@rdf:about=$parent]/rdfs:label"/>
                        </a>
                    </li>
                </xsl:for-each>
            </ul>
        </xsl:if>
    </xsl:template>
    <xsl:template name="enfants">
        <xsl:if test="harry:parent_de">
            <p>Enfants :</p>
            <ul>
                <xsl:for-each select="harry:parent_de">
                    <xsl:variable name="enfant" select="@rdf:resource"/>
                    <li>
                        <a href="personne.php?personne={substring-after($enfant,'#')}">
                        <xsl:value-of select="//rdf:Description[@rdf:about=$enfant]/rdfs:label"/>
                        </a>
                    </li>
                </xsl:for-each>
            </ul>
        </xsl:if>
    </xsl:template>
    <xsl:template name="amis">
        <xsl:if test="harry:ami_de">
            <p>Amis :</p>
            <ul>
                <xsl:for-each select="harry:ami_de">
                    <xsl:variable name="ami" select="@rdf:resource"/>
                    <li>
                        <a href="personne.php?personne={substring-after($ami,'#')}">
                            <xsl:value-of select="//rdf:Description[@rdf:about=$ami]/rdfs:label"/>
                        </a>
                    </li>
                </xsl:for-each>
            </ul>
        </xsl:if>
    </xsl:template>
    <xsl:template name="ennemis">
        <xsl:if test="harry:ennemi_de">
            <p>Ennemis :</p>
            <ul>
                <xsl:for-each select="harry:ennemi_de">
                    <xsl:variable name="ennemi" select="@rdf:resource"/>
                    <li>
                        <a href="personne.php?personne={substring-after($ennemi,'#')}">
                            <xsl:value-of select="//rdf:Description[@rdf:about=$ennemi]/rdfs:label"/>
                        </a>
                    </li>
                </xsl:for-each>
            </ul>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
