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