| 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 | 
 | 
|---|