| [2220] | 1 | <?xml version="1.0"?> 
 | 
|---|
 | 2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | <xsl:output method="text" omit-xml-declaration="no" indent="no"/>
 | 
|---|
 | 5 | <xsl:strip-space elements="*"/>
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | <xsl:template match="processors">       
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 |         <xsl:variable name="lstproc">
 | 
|---|
 | 10 |         <xsl:for-each select="processor">
 | 
|---|
 | 11 |         <xsl:value-of select="@name"/>
 | 
|---|
 | 12 |         <xsl:if test="last() > position()"> | </xsl:if>
 | 
|---|
 | 13 |         </xsl:for-each>
 | 
|---|
 | 14 |         </xsl:variable>
 | 
|---|
 | 15 |         
 | 
|---|
 | 16 |         <xsl:variable name="lstinput">
 | 
|---|
 | 17 |         <xsl:for-each select="//input">
 | 
|---|
 | 18 |         <xsl:value-of select="@name"/>
 | 
|---|
 | 19 |         <xsl:if test="last() > position()"> | </xsl:if>
 | 
|---|
 | 20 |         </xsl:for-each>
 | 
|---|
 | 21 |         </xsl:variable>
 | 
|---|
 | 22 |         
 | 
|---|
 | 23 |         <xsl:variable name="lstoutput">
 | 
|---|
 | 24 |         <xsl:for-each select="//output">
 | 
|---|
 | 25 |         <xsl:value-of select="@name"/>
 | 
|---|
 | 26 |         <xsl:if test="last() > position()"> | </xsl:if>
 | 
|---|
 | 27 |         </xsl:for-each>
 | 
|---|
 | 28 |         </xsl:variable>
 | 
|---|
 | 29 | 
 | 
|---|
 | 30 |         <xsl:text>
 | 
|---|
 | 31 |         <!ELEMENT connect EMPTY>
 | 
|---|
 | 32 |         <!-- <!ATTLIST connect input ( </xsl:text><xsl:value-of select="$lstinput"/><xsl:text> ) #REQUIRED> -->
 | 
|---|
 | 33 |         <!ATTLIST connect input NMTOKEN #REQUIRED>
 | 
|---|
 | 34 |         <!ATTLIST connect name NMTOKEN #REQUIRED>
 | 
|---|
 | 35 |         <!-- <!ATTLIST connect output ( </xsl:text><xsl:value-of select="$lstoutput"/><xsl:text> ) #REQUIRED> -->
 | 
|---|
 | 36 |         <!ATTLIST connect output NMTOKEN #REQUIRED>
 | 
|---|
 | 37 |         </xsl:text>
 | 
|---|
 | 38 |         <xsl:text>
 | 
|---|
 | 39 |         <!ATTLIST connect procin NMTOKEN #REQUIRED>
 | 
|---|
 | 40 |         <!ATTLIST connect procout NMTOKEN #REQUIRED>
 | 
|---|
 | 41 |         
 | 
|---|
 | 42 |         <!ELEMENT constraint EMPTY>
 | 
|---|
 | 43 |         <!ATTLIST constraint max NMTOKEN #REQUIRED>
 | 
|---|
 | 44 |         <!ATTLIST constraint min NMTOKEN #REQUIRED>
 | 
|---|
 | 45 |         <!ATTLIST constraint proc NMTOKEN #REQUIRED>
 | 
|---|
 | 46 |         
 | 
|---|
 | 47 |         <!ELEMENT start EMPTY>
 | 
|---|
 | 48 | 
 | 
|---|
 | 49 |         <!ELEMENT toipipe ( (</xsl:text><xsl:value-of select="$lstproc"/><xsl:text> | connect | constraint | start )* )>
 | 
|---|
 | 50 |         <!ATTLIST toipipe name NMTOKEN #IMPLIED>
 | 
|---|
 | 51 |         </xsl:text>
 | 
|---|
 | 52 | 
 | 
|---|
 | 53 |         <!-- recherche des processeurs -->
 | 
|---|
 | 54 |         <xsl:apply-templates/>
 | 
|---|
 | 55 |         <xsl:text>
 | 
|---|
 | 56 | 
 | 
|---|
 | 57 |         </xsl:text>
 | 
|---|
 | 58 | </xsl:template>
 | 
|---|
 | 59 | 
 | 
|---|
 | 60 | 
 | 
|---|
 | 61 | <xsl:template match="processor">
 | 
|---|
 | 62 | 
 | 
|---|
 | 63 |         <xsl:variable name="nomproc" select="@name"/>
 | 
|---|
 | 64 |         
 | 
|---|
 | 65 |         <!-- liste des methodes -->
 | 
|---|
 | 66 |         <xsl:variable name="lstmethod">
 | 
|---|
 | 67 |         <xsl:for-each select="attribute">
 | 
|---|
 | 68 |         <xsl:value-of select="@name"/>
 | 
|---|
 | 69 |         <xsl:if test="last() > position()"> | </xsl:if>
 | 
|---|
 | 70 |         </xsl:for-each>
 | 
|---|
 | 71 |         </xsl:variable>
 | 
|---|
 | 72 |         
 | 
|---|
 | 73 |         <!-- sortie -->
 | 
|---|
 | 74 |         <xsl:if test="$lstmethod=''">
 | 
|---|
 | 75 |         <xsl:text>
 | 
|---|
 | 76 |         <!ELEMENT </xsl:text><xsl:value-of select="$nomproc"/><xsl:text> EMPTY></xsl:text>
 | 
|---|
 | 77 |         </xsl:if>
 | 
|---|
 | 78 |         <xsl:if test="$lstmethod!=''">
 | 
|---|
 | 79 |         <xsl:text>
 | 
|---|
 | 80 | 
 | 
|---|
 | 81 |         <!ELEMENT </xsl:text><xsl:value-of select="$nomproc"/><xsl:text> ( (</xsl:text><xsl:value-of select="$lstmethod"/><xsl:text>)* )></xsl:text>
 | 
|---|
 | 82 |         </xsl:if>
 | 
|---|
 | 83 |         <xsl:text>
 | 
|---|
 | 84 |         <!ATTLIST </xsl:text><xsl:value-of select="$nomproc"/><xsl:text> id NMTOKEN #REQUIRED></xsl:text>
 | 
|---|
 | 85 | 
 | 
|---|
 | 86 |         <xsl:for-each select="init/param">
 | 
|---|
 | 87 |         <xsl:text>
 | 
|---|
 | 88 |         <!ATTLIST </xsl:text><xsl:value-of select="$nomproc"/><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text> NMTOKEN #IMPLIED></xsl:text>
 | 
|---|
 | 89 |         </xsl:for-each>
 | 
|---|
 | 90 | 
 | 
|---|
 | 91 |         <!-- recherche des attributs -->
 | 
|---|
 | 92 |         <xsl:apply-templates/>
 | 
|---|
 | 93 | 
 | 
|---|
 | 94 | </xsl:template>
 | 
|---|
 | 95 | 
 | 
|---|
 | 96 | <xsl:template match="attribute">
 | 
|---|
 | 97 | 
 | 
|---|
 | 98 |         <xsl:variable name="nomatt" select="@name"/>
 | 
|---|
 | 99 | 
 | 
|---|
 | 100 |         <xsl:text>
 | 
|---|
 | 101 |         <!ELEMENT </xsl:text><xsl:value-of select="$nomatt"/><xsl:text> EMPTY></xsl:text>
 | 
|---|
 | 102 | 
 | 
|---|
 | 103 |         <xsl:for-each select="param">
 | 
|---|
 | 104 |         <xsl:text>
 | 
|---|
 | 105 |         <!ATTLIST </xsl:text><xsl:value-of select="$nomatt"/><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text> NMTOKEN #IMPLIED>
 | 
|---|
 | 106 |         </xsl:text>
 | 
|---|
 | 107 |         </xsl:for-each>
 | 
|---|
 | 108 | 
 | 
|---|
 | 109 | </xsl:template>
 | 
|---|
 | 110 | 
 | 
|---|
 | 111 | </xsl:stylesheet>
 | 
|---|
 | 112 | 
 | 
|---|
 | 113 | 
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | 
 | 
|---|
 | 116 | 
 | 
|---|
 | 117 | 
 | 
|---|
 | 118 | 
 | 
|---|
 | 119 | 
 | 
|---|
 | 120 | 
 | 
|---|
 | 121 | 
 | 
|---|
 | 122 | 
 | 
|---|