File: prep.xsl

package info (click to toggle)
trang 20030619-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,084 kB
  • ctags: 7,825
  • sloc: java: 46,901; xml: 5,923; sh: 2,770; makefile: 720
file content (113 lines) | stat: -rw-r--r-- 3,397 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output encoding="utf-8"/>

<xsl:param name="dir" select="'.'"/>

<xsl:template match="/*">
  <documents>
    <dir name="{$dir}"/>
    <xsl:apply-templates select="//testCase"/>
  </documents>
</xsl:template>

<xsl:variable name="incorrectSchemaName" select="'i'"/>
<xsl:variable name="correctSchemaName" select="'c'"/>
<xsl:variable name="xmlSuffix" select="'.rng'"/>
<xsl:variable name="compactSuffix" select="'.rnc'"/>
<xsl:variable name="xsdSuffix" select="'.xsd'"/>
<xsl:variable name="xmlDir" select="'xml'"/>
<xsl:variable name="xsdDir" select="'xsd'"/>
<xsl:variable name="compactDir" select="'compact'"/>
<xsl:variable name="outDir" select="'out'"/>

<xsl:template match="testCase">
  <xsl:variable name="b" select="concat($dir, '/', format-number(position(),'000'))"/>
  <dir name="{$b}"/>
  <dir name="{concat($b, '/', $outDir)}"/>
  <xsl:apply-templates select="*">
    <xsl:with-param name="base" select="$b"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="xml//resource|xsd//resource">
  <xsl:param name="base"/>
  <document href="{$base}/{@name}" method="xml">
    <xsl:copy-of select="node()"/>
  </document>
</xsl:template>

<xsl:template match="xml//correct">
  <xsl:param name="base"/>
  <document href="{$base}/{$correctSchemaName}{$xmlSuffix}" method="xml">
    <xsl:copy-of select="node()"/>
  </document>
</xsl:template>

<xsl:template match="xsd//correct">
  <xsl:param name="base"/>
  <document href="{$base}/{$correctSchemaName}{$xsdSuffix}" method="xml">
    <xsl:copy-of select="node()"/>
  </document>
</xsl:template>

<xsl:template match="compact//incorrect">
  <xsl:param name="base"/>
  <document href="{$base}/{$incorrectSchemaName}{$compactSuffix}" method="text" encoding="utf-8">
    <xsl:value-of select="."/>
  </document>
</xsl:template>

<xsl:template match="compact//correct">
  <xsl:param name="base"/>
  <document href="{$base}/{$correctSchemaName}{$compactSuffix}" method="text" encoding="utf-8">
    <xsl:value-of select="."/>
  </document>
</xsl:template>

<xsl:template match="compact//resource">
  <xsl:param name="base"/>
  <document href="{$base}/{@name}" method="text" encoding="utf-8">
    <xsl:value-of select="."/>
  </document>
</xsl:template>

<xsl:template match="compact">
  <xsl:param name="base"/>
  <xsl:variable name="d" select="concat($base, '/', $compactDir)"/>
  <dir name="{$d}"/>
  <xsl:apply-templates select="*">
    <xsl:with-param name="base" select="$d"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="xml">
  <xsl:param name="base"/>
  <xsl:variable name="d" select="concat($base, '/', $xmlDir)"/>
  <dir name="{$d}"/>
  <xsl:apply-templates select="*">
    <xsl:with-param name="base" select="$d"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="xsd">
  <xsl:param name="base"/>
  <xsl:variable name="d" select="concat($base, '/', $xsdDir)"/>
  <dir name="{$d}"/>
  <xsl:apply-templates select="*">
    <xsl:with-param name="base" select="$d"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="dir">
  <xsl:param name="base"/>
  <xsl:variable name="d" select="concat($base, '/', @name)"/>
  <dir name="{$d}"/>
  <xsl:apply-templates select="*">
    <xsl:with-param name="base" select="$d"/>
  </xsl:apply-templates>
</xsl:template>

</xsl:stylesheet>