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