bolognese 0.11.1 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/bolognese/version.rb +1 -1
- data/resources/2008/09/xsd.xsl +997 -0
- data/resources/kernel-3.0/include/xml.xsd +286 -0
- data/resources/kernel-3.0/metadata.xsd +1 -1
- data/resources/kernel-3.1/include/xml.xsd +286 -0
- data/resources/kernel-3.1/metadata.xsd +1 -1
- data/resources/kernel-3/include/xml.xsd +286 -0
- data/resources/kernel-3/metadata.xsd +1 -1
- data/resources/kernel-4.0/include/xml.xsd +286 -0
- data/resources/kernel-4.0/metadata.xsd +1 -1
- data/resources/kernel-4.1/include/xml.xsd +286 -0
- data/resources/kernel-4.1/metadata.xsd +1 -1
- data/resources/kernel-4/include/xml.xsd +286 -0
- data/resources/kernel-4/metadata.xsd +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3a474fc02c5cd6efde7e3281b2b028893ba95762eb76db7ea6292ca262104493
|
|
4
|
+
data.tar.gz: 2ddb4c167ce6fdf718ad17bb5802465291d500e8f660232b5649635191ced1e0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 180c4a1b2d5b68bde9f40b0e4b6e3710e5d698e06ce8c9d95b3b1e881992dced59b509b5dd50ca281de976b93ce7160ecd67b9f1b7c235e3d4bff7fc59018c0b
|
|
7
|
+
data.tar.gz: 5e7345b954368e38a3f168343f565ab6ecc92ca0fe69726c92416550644094ede0e201aff89bef492eac232b63a966f757aecf3d52ed45acf686115de798ca49
|
data/Gemfile.lock
CHANGED
data/lib/bolognese/version.rb
CHANGED
|
@@ -0,0 +1,997 @@
|
|
|
1
|
+
<!DOCTYPE xsl:stylesheet [
|
|
2
|
+
<!--*
|
|
3
|
+
<!DOCTYPE xsl:stylesheet PUBLIC 'http://www.w3.org/1999/XSL/Transform'
|
|
4
|
+
'../../People/cmsmcq/lib/xslt10.dtd' [
|
|
5
|
+
*-->
|
|
6
|
+
<!ATTLIST xsl:stylesheet
|
|
7
|
+
xmlns:xsl CDATA "http://www.w3.org/1999/XSL/Transform"
|
|
8
|
+
xmlns:xsd CDATA #IMPLIED
|
|
9
|
+
xmlns:xhtml CDATA #IMPLIED
|
|
10
|
+
>
|
|
11
|
+
<!ATTLIST xsl:text
|
|
12
|
+
xmlns:xsl CDATA "http://www.w3.org/1999/XSL/Transform"
|
|
13
|
+
>
|
|
14
|
+
|
|
15
|
+
<!ENTITY copy "©" ><!--=copyright sign-->
|
|
16
|
+
<!ENTITY reg "®" ><!--/circledR =registered sign-->
|
|
17
|
+
<!ENTITY rarr "→" ><!--/rightarrow /to A: =rightward arrow-->
|
|
18
|
+
|
|
19
|
+
<!ENTITY nl "
">
|
|
20
|
+
<!ENTITY lsquo "‘" ><!--=single quotation mark, left-->
|
|
21
|
+
<!ENTITY rsquo "’" ><!--=single quotation mark, right-->
|
|
22
|
+
<!ENTITY ldquo "“" ><!--=double quotation mark, left-->
|
|
23
|
+
<!ENTITY rdquo "”" ><!--=double quotation mark, right-->
|
|
24
|
+
|
|
25
|
+
]>
|
|
26
|
+
<xsl:stylesheet version="1.0"
|
|
27
|
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
28
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
29
|
+
xmlns:xhtml="http://www.w3.org/1999/xhtml"
|
|
30
|
+
>
|
|
31
|
+
|
|
32
|
+
<!--* xsd.xsl: format an XSD schema document for simple display in a Web browser.
|
|
33
|
+
* http://www.w3.org/XML/2004/xml-schema-test-suite/xsd.xsl
|
|
34
|
+
*
|
|
35
|
+
* Copyright © 2008-2009 World Wide Web Consortium, (Massachusetts
|
|
36
|
+
* Institute of Technology, European Research Consortium for
|
|
37
|
+
* Informatics and Mathematics, Keio University). All Rights
|
|
38
|
+
* Reserved. This work is distributed under the W3C® Software
|
|
39
|
+
* License [1] in the hope that it will be useful, but WITHOUT ANY
|
|
40
|
+
* WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
41
|
+
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
42
|
+
*
|
|
43
|
+
* [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
|
|
44
|
+
*
|
|
45
|
+
*-->
|
|
46
|
+
|
|
47
|
+
<!--* Revisions:
|
|
48
|
+
* 2012-05-03 : CMSMcQ : reissue under Software License, not document
|
|
49
|
+
* license
|
|
50
|
+
* 2009-01-21 : CMSMcQ : wrap start-tags only when necessary
|
|
51
|
+
* 2009-01-20 : CMSMcQ : wrap start-tags
|
|
52
|
+
* 2008-12-19 : CMSMcQ : add toc for schema documents with more than
|
|
53
|
+
* five children of xsd:schema
|
|
54
|
+
* 2008-12-18 : CMSMcQ : fix problems with text breaking
|
|
55
|
+
* add rule for top-level attribute groups
|
|
56
|
+
* 2008-09-27 : CMSMcQ : made first version of this stylesheet
|
|
57
|
+
*-->
|
|
58
|
+
|
|
59
|
+
<xsl:output method="html" indent="yes"/>
|
|
60
|
+
|
|
61
|
+
<xsl:param name="line-wrap-length" select="60"/>
|
|
62
|
+
<xsl:param name="ind-depth" select="6"/>
|
|
63
|
+
<xsl:param name="additional-indent" select="substring(
|
|
64
|
+
' ',
|
|
65
|
+
1,$ind-depth)"/>
|
|
66
|
+
|
|
67
|
+
<xsl:variable name="tns">
|
|
68
|
+
<xsl:value-of select="/xsd:schema/@targetNamespace"/>
|
|
69
|
+
</xsl:variable>
|
|
70
|
+
|
|
71
|
+
<!--* 0 Document root *-->
|
|
72
|
+
<xsl:template match="/">
|
|
73
|
+
|
|
74
|
+
<xsl:variable name="doctitle">
|
|
75
|
+
<xsl:text>Schema document for </xsl:text>
|
|
76
|
+
<xsl:choose>
|
|
77
|
+
<xsl:when test="xsd:schema/@targetNamespace">
|
|
78
|
+
<xsl:text>namespace </xsl:text>
|
|
79
|
+
<xsl:value-of select="$tns"/>
|
|
80
|
+
</xsl:when>
|
|
81
|
+
<xsl:otherwise>
|
|
82
|
+
<xsl:text>unspecified namespace</xsl:text>
|
|
83
|
+
</xsl:otherwise>
|
|
84
|
+
</xsl:choose>
|
|
85
|
+
</xsl:variable>
|
|
86
|
+
|
|
87
|
+
<xsl:variable name="docHasHeading" select="
|
|
88
|
+
xsd:schema/xsd:annotation[1]/xsd:documentation/*[1]
|
|
89
|
+
[self::xhtml:h1 or self::h1]
|
|
90
|
+
or
|
|
91
|
+
xsd:schema/xsd:annotation[1]/xsd:documentation/xhtml:div/*[1]
|
|
92
|
+
[self::xhtml:h1 or self::h1]
|
|
93
|
+
"/>
|
|
94
|
+
<xsl:variable name="docIsProlific" select="
|
|
95
|
+
count(xsd:schema/child::*) > 5
|
|
96
|
+
"/>
|
|
97
|
+
|
|
98
|
+
<xsl:element name="html">
|
|
99
|
+
<xsl:element name="head">
|
|
100
|
+
<xsl:element name="title">
|
|
101
|
+
<xsl:value-of select="$doctitle"/>
|
|
102
|
+
</xsl:element>
|
|
103
|
+
<xsl:element name="style">
|
|
104
|
+
<xsl:attribute name="type">text/css</xsl:attribute>
|
|
105
|
+
.bodytext .bodytext {
|
|
106
|
+
margin-left: 0;
|
|
107
|
+
margin-right: 0;
|
|
108
|
+
}
|
|
109
|
+
.bodytext {
|
|
110
|
+
margin-left: 15%;
|
|
111
|
+
margin-right: 2%;
|
|
112
|
+
}
|
|
113
|
+
.annotation {
|
|
114
|
+
<!--* anything special to do here? *-->
|
|
115
|
+
<!--* color: navy; *-->
|
|
116
|
+
}
|
|
117
|
+
.same-ns {
|
|
118
|
+
color: Green;
|
|
119
|
+
}
|
|
120
|
+
.diff-ns {
|
|
121
|
+
color: maroon;
|
|
122
|
+
}
|
|
123
|
+
.warning {
|
|
124
|
+
color: red;
|
|
125
|
+
}
|
|
126
|
+
p.note {
|
|
127
|
+
font-style: italic;
|
|
128
|
+
}
|
|
129
|
+
p.dt {
|
|
130
|
+
font-weight: bold;
|
|
131
|
+
}
|
|
132
|
+
span.rfc {
|
|
133
|
+
font-variant: small-caps;
|
|
134
|
+
}
|
|
135
|
+
</xsl:element>
|
|
136
|
+
</xsl:element>
|
|
137
|
+
<xsl:element name="body">
|
|
138
|
+
|
|
139
|
+
<xsl:choose>
|
|
140
|
+
<xsl:when test="$docHasHeading and not($docIsProlific)">
|
|
141
|
+
<!--* If the first thing in the first documentation element is a heading,
|
|
142
|
+
* and there are few children, then don't interfere.
|
|
143
|
+
*-->
|
|
144
|
+
<xsl:comment>* <xsl:value-of select="$doctitle"/> *</xsl:comment>
|
|
145
|
+
</xsl:when>
|
|
146
|
+
<xsl:otherwise>
|
|
147
|
+
<!--* either document has no heading (and needs one), or
|
|
148
|
+
* we're going to do a toc and need a heading anyway
|
|
149
|
+
*-->
|
|
150
|
+
<xsl:element name="h1">
|
|
151
|
+
<xsl:value-of select="$doctitle"/>
|
|
152
|
+
</xsl:element>
|
|
153
|
+
<xsl:if test="$docIsProlific">
|
|
154
|
+
<xsl:element name="div">
|
|
155
|
+
<xsl:element name="hr"/>
|
|
156
|
+
<xsl:element name="ul">
|
|
157
|
+
<xsl:attribute name="class">bodytext</xsl:attribute>
|
|
158
|
+
<xsl:apply-templates mode="toc" select="./xsd:schema/*"/>
|
|
159
|
+
</xsl:element>
|
|
160
|
+
<xsl:element name="hr"/>
|
|
161
|
+
</xsl:element>
|
|
162
|
+
</xsl:if>
|
|
163
|
+
</xsl:otherwise>
|
|
164
|
+
</xsl:choose>
|
|
165
|
+
<xsl:apply-templates/>
|
|
166
|
+
</xsl:element>
|
|
167
|
+
</xsl:element>
|
|
168
|
+
</xsl:template>
|
|
169
|
+
|
|
170
|
+
<!--* 2 Schema element *-->
|
|
171
|
+
<xsl:template match="xsd:schema">
|
|
172
|
+
<!--* optional future change: write out information here about
|
|
173
|
+
* the attributes of xsd:schema: version, finalDefault, blockDefault,
|
|
174
|
+
* elementFormDefault, atgtributeFormDefault, namespace bindings ...
|
|
175
|
+
*-->
|
|
176
|
+
<xsl:apply-templates/>
|
|
177
|
+
</xsl:template>
|
|
178
|
+
|
|
179
|
+
<!--* 3 Anotation *-->
|
|
180
|
+
<xsl:template match="xsd:annotation">
|
|
181
|
+
<xsl:element name="div">
|
|
182
|
+
<xsl:attribute name="class">annotation</xsl:attribute>
|
|
183
|
+
<xsl:attribute name="id">
|
|
184
|
+
<xsl:call-template name="leid">
|
|
185
|
+
</xsl:call-template>
|
|
186
|
+
</xsl:attribute>
|
|
187
|
+
<xsl:if test="not(./xsd:documentation//*[@class='bodytext'])">
|
|
188
|
+
<xsl:element name="h3">Annotation</xsl:element>
|
|
189
|
+
</xsl:if>
|
|
190
|
+
<xsl:element name="div">
|
|
191
|
+
<xsl:choose>
|
|
192
|
+
<xsl:when test="./xsd:documentation//*[@class='bodytext']">
|
|
193
|
+
<!--* if the schema document is already using class=bodytext,
|
|
194
|
+
* let the schema author control the margins, don't
|
|
195
|
+
* assign the class here.
|
|
196
|
+
*-->
|
|
197
|
+
</xsl:when>
|
|
198
|
+
<xsl:otherwise>
|
|
199
|
+
<xsl:attribute name="class">bodytext</xsl:attribute>
|
|
200
|
+
</xsl:otherwise>
|
|
201
|
+
</xsl:choose>
|
|
202
|
+
<xsl:apply-templates/>
|
|
203
|
+
</xsl:element>
|
|
204
|
+
</xsl:element>
|
|
205
|
+
</xsl:template>
|
|
206
|
+
|
|
207
|
+
<xsl:template match="xsd:documentation">
|
|
208
|
+
<xsl:choose>
|
|
209
|
+
<xsl:when test=".//xhtml:* or .//div or .//p or .//li">
|
|
210
|
+
<xsl:copy-of select="*"/>
|
|
211
|
+
</xsl:when>
|
|
212
|
+
<xsl:when test="./*">
|
|
213
|
+
<xsl:message>! Unrecognized children in xs:documentation element</xsl:message>
|
|
214
|
+
<xsl:copy-of select="*"/>
|
|
215
|
+
</xsl:when>
|
|
216
|
+
<xsl:otherwise>
|
|
217
|
+
<xsl:call-template name="break-pcdata">
|
|
218
|
+
<xsl:with-param name="s" select="string(.)"/>
|
|
219
|
+
</xsl:call-template>
|
|
220
|
+
</xsl:otherwise>
|
|
221
|
+
</xsl:choose>
|
|
222
|
+
</xsl:template>
|
|
223
|
+
|
|
224
|
+
<xsl:template name="break-pcdata">
|
|
225
|
+
<xsl:param name="s"></xsl:param>
|
|
226
|
+
|
|
227
|
+
<xsl:choose>
|
|
228
|
+
<xsl:when test="starts-with($s,'
')">
|
|
229
|
+
<xsl:text>
</xsl:text>
|
|
230
|
+
<xsl:element name="br"/>
|
|
231
|
+
<xsl:call-template name="break-pcdata">
|
|
232
|
+
<xsl:with-param name="s" select="substring($s,2)"/>
|
|
233
|
+
</xsl:call-template>
|
|
234
|
+
</xsl:when>
|
|
235
|
+
<xsl:when test="starts-with($s,' ')">
|
|
236
|
+
<xsl:text> </xsl:text>
|
|
237
|
+
<xsl:call-template name="break-pcdata">
|
|
238
|
+
<xsl:with-param name="s" select="substring($s,2)"/>
|
|
239
|
+
</xsl:call-template>
|
|
240
|
+
</xsl:when>
|
|
241
|
+
<xsl:when test="contains($s,'
')">
|
|
242
|
+
<xsl:value-of select="substring-before($s,'
')"/>
|
|
243
|
+
<xsl:text>
</xsl:text>
|
|
244
|
+
<xsl:element name="br"/>
|
|
245
|
+
<xsl:call-template name="break-pcdata">
|
|
246
|
+
<xsl:with-param name="s" select="substring-after($s,'
')"/>
|
|
247
|
+
</xsl:call-template>
|
|
248
|
+
</xsl:when>
|
|
249
|
+
<xsl:otherwise>
|
|
250
|
+
<xsl:value-of select="$s"/>
|
|
251
|
+
</xsl:otherwise>
|
|
252
|
+
</xsl:choose>
|
|
253
|
+
</xsl:template>
|
|
254
|
+
|
|
255
|
+
<!--* 4 Top-level components *-->
|
|
256
|
+
<xsl:template match="
|
|
257
|
+
xsd:schema/xsd:attribute
|
|
258
|
+
| xsd:schema/xsd:element
|
|
259
|
+
| xsd:schema/xsd:simpleType
|
|
260
|
+
| xsd:schema/xsd:complexType
|
|
261
|
+
| xsd:schema/xsd:attributeGroup
|
|
262
|
+
| xsd:schema/xsd:import
|
|
263
|
+
| xsd:schema/xsd:group
|
|
264
|
+
| xsd:schema/xsd:notation
|
|
265
|
+
">
|
|
266
|
+
<xsl:call-template name="show-top-level-component"/>
|
|
267
|
+
</xsl:template>
|
|
268
|
+
|
|
269
|
+
<xsl:template name="show-top-level-component">
|
|
270
|
+
<xsl:variable name="sort">
|
|
271
|
+
<xsl:call-template name="sort"/>
|
|
272
|
+
</xsl:variable>
|
|
273
|
+
<xsl:variable name="leid">
|
|
274
|
+
<xsl:call-template name="leid"/>
|
|
275
|
+
</xsl:variable>
|
|
276
|
+
<xsl:variable name="has-heading-already">
|
|
277
|
+
<xsl:choose>
|
|
278
|
+
<xsl:when test="./xsd:annotation[1]/xsd:documentation/*//*
|
|
279
|
+
[self::xhtml:*[starts-with(local-name(),'h')]
|
|
280
|
+
or
|
|
281
|
+
self::*[contains(' h1 h2 h3 h4 h5 ',local-name())]
|
|
282
|
+
]">
|
|
283
|
+
<xsl:value-of select="'true'"/>
|
|
284
|
+
</xsl:when>
|
|
285
|
+
<xsl:otherwise>
|
|
286
|
+
<xsl:value-of select="'false'"/>
|
|
287
|
+
</xsl:otherwise>
|
|
288
|
+
</xsl:choose>
|
|
289
|
+
</xsl:variable>
|
|
290
|
+
|
|
291
|
+
<xsl:element name="div">
|
|
292
|
+
<xsl:attribute name="id">
|
|
293
|
+
<xsl:value-of select="$leid"/>
|
|
294
|
+
</xsl:attribute>
|
|
295
|
+
<xsl:element name="h3">
|
|
296
|
+
<xsl:element name="a">
|
|
297
|
+
<xsl:attribute name="name">
|
|
298
|
+
<xsl:value-of select="$leid"/>
|
|
299
|
+
</xsl:attribute>
|
|
300
|
+
<xsl:value-of select="concat($sort,' ')"/>
|
|
301
|
+
<xsl:choose>
|
|
302
|
+
<xsl:when test="count(@name) = 1">
|
|
303
|
+
<xsl:element name="em">
|
|
304
|
+
<xsl:value-of select="@name"/>
|
|
305
|
+
</xsl:element>
|
|
306
|
+
</xsl:when>
|
|
307
|
+
<xsl:when test="self::xsd:import and (count(@namespace) = 1)">
|
|
308
|
+
<xsl:element name="code">
|
|
309
|
+
<xsl:value-of select="@namespace"/>
|
|
310
|
+
</xsl:element>
|
|
311
|
+
</xsl:when>
|
|
312
|
+
</xsl:choose>
|
|
313
|
+
</xsl:element>
|
|
314
|
+
</xsl:element>
|
|
315
|
+
|
|
316
|
+
<xsl:element name="div">
|
|
317
|
+
<xsl:attribute name="class">bodytext</xsl:attribute>
|
|
318
|
+
|
|
319
|
+
<xsl:if test="./xsd:annotation/xsd:documentation">
|
|
320
|
+
<xsl:element name="div">
|
|
321
|
+
<xsl:if test="$has-heading-already = 'false'">
|
|
322
|
+
<xsl:element name="h4">Notes</xsl:element>
|
|
323
|
+
</xsl:if><!-- /if .$has-heading-already *-->
|
|
324
|
+
<xsl:apply-templates select="xsd:annotation/xsd:documentation"/>
|
|
325
|
+
<xsl:if test="count(./xsd:annotation/xsd:documentation/@source) = 1">
|
|
326
|
+
<xsl:element name="p">
|
|
327
|
+
<xsl:text>External documentation at </xsl:text>
|
|
328
|
+
<xsl:element name="code">
|
|
329
|
+
<xsl:element name="a">
|
|
330
|
+
<xsl:attribute name="href">
|
|
331
|
+
<xsl:value-of select="./xsd:annotation/xsd:documentation/@source"/>
|
|
332
|
+
</xsl:attribute>
|
|
333
|
+
<xsl:value-of select="./xsd:annotation/xsd:documentation/@source"/>
|
|
334
|
+
</xsl:element>
|
|
335
|
+
</xsl:element>
|
|
336
|
+
</xsl:element>
|
|
337
|
+
</xsl:if>
|
|
338
|
+
</xsl:element>
|
|
339
|
+
</xsl:if><!-- /if ./xsd:annotation/xsd:documentation *-->
|
|
340
|
+
|
|
341
|
+
<xsl:element name="div">
|
|
342
|
+
<xsl:element name="h4">Formal declaration in XSD source form</xsl:element>
|
|
343
|
+
<xsl:element name="pre">
|
|
344
|
+
<xsl:variable name="preceding-node"
|
|
345
|
+
select="./preceding-sibling::node()[1]"/>
|
|
346
|
+
<xsl:if test="not($preceding-node/self::*)
|
|
347
|
+
and (normalize-space($preceding-node) = '')">
|
|
348
|
+
<xsl:value-of select="$preceding-node"/>
|
|
349
|
+
</xsl:if>
|
|
350
|
+
<xsl:apply-templates select="." mode="echo-xml"/>
|
|
351
|
+
</xsl:element>
|
|
352
|
+
</xsl:element><!--* div for XSD source form *-->
|
|
353
|
+
</xsl:element><!--* div for documentation and formal description *-->
|
|
354
|
+
|
|
355
|
+
</xsl:element><!--* div for top-level component *-->
|
|
356
|
+
</xsl:template>
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
<!--* 5 xml mode *-->
|
|
360
|
+
<xsl:template match="*" mode="echo-xml">
|
|
361
|
+
<xsl:variable name="s0">
|
|
362
|
+
<xsl:call-template name="lastline-suffix">
|
|
363
|
+
<xsl:with-param name="s0" select="preceding-sibling::text()
|
|
364
|
+
[string-length(.) > 0][1]" />
|
|
365
|
+
</xsl:call-template>
|
|
366
|
+
</xsl:variable>
|
|
367
|
+
<xsl:variable name="width">
|
|
368
|
+
<xsl:call-template name="stag-width">
|
|
369
|
+
<xsl:with-param name="indent-length" select="string-length($s0)"/>
|
|
370
|
+
</xsl:call-template>
|
|
371
|
+
</xsl:variable>
|
|
372
|
+
<!--* <xsl:message>Start-tag width for <xsl:value-of select="name()"/>
|
|
373
|
+
= <xsl:value-of select="$width"/></xsl:message> *-->
|
|
374
|
+
|
|
375
|
+
<xsl:text><</xsl:text>
|
|
376
|
+
<xsl:value-of select="name()"/>
|
|
377
|
+
<xsl:apply-templates select="@*" mode="echo-xml">
|
|
378
|
+
<xsl:with-param name="break-or-nobreak">
|
|
379
|
+
<xsl:choose>
|
|
380
|
+
<xsl:when test="$width > $line-wrap-length">break</xsl:when>
|
|
381
|
+
<xsl:otherwise>nobreak</xsl:otherwise>
|
|
382
|
+
</xsl:choose>
|
|
383
|
+
</xsl:with-param>
|
|
384
|
+
<xsl:with-param name="s0">
|
|
385
|
+
<xsl:call-template name="lastline-suffix">
|
|
386
|
+
<xsl:with-param name="s0" select="preceding-sibling::text()
|
|
387
|
+
[string-length(.) > 0][1]" />
|
|
388
|
+
</xsl:call-template>
|
|
389
|
+
</xsl:with-param>
|
|
390
|
+
</xsl:apply-templates>
|
|
391
|
+
<xsl:choose>
|
|
392
|
+
<xsl:when test="child::node()">
|
|
393
|
+
<xsl:text>></xsl:text>
|
|
394
|
+
<xsl:apply-templates select="node()" mode="echo-xml"/>
|
|
395
|
+
<xsl:text></</xsl:text>
|
|
396
|
+
<xsl:value-of select="name()"/>
|
|
397
|
+
<xsl:text>></xsl:text>
|
|
398
|
+
</xsl:when>
|
|
399
|
+
<xsl:otherwise>/></xsl:otherwise>
|
|
400
|
+
</xsl:choose>
|
|
401
|
+
<!--* </xsl:element> *-->
|
|
402
|
+
</xsl:template>
|
|
403
|
+
|
|
404
|
+
<xsl:template match="xsd:annotation" mode="echo-xml"/>
|
|
405
|
+
<xsl:template match="@xml:space" mode="echo-xml"/>
|
|
406
|
+
|
|
407
|
+
<xsl:template match="@*" mode="echo-xml">
|
|
408
|
+
<xsl:param name="break-or-nobreak">nobreak</xsl:param>
|
|
409
|
+
<xsl:param name="s0"></xsl:param>
|
|
410
|
+
<xsl:variable name="indent">
|
|
411
|
+
<xsl:choose>
|
|
412
|
+
<xsl:when test="normalize-space($s0) = ''">
|
|
413
|
+
<xsl:value-of select="concat($additional-indent,$s0)"/>
|
|
414
|
+
</xsl:when>
|
|
415
|
+
<xsl:otherwise>
|
|
416
|
+
<xsl:value-of select="' '"/>
|
|
417
|
+
</xsl:otherwise>
|
|
418
|
+
</xsl:choose>
|
|
419
|
+
</xsl:variable>
|
|
420
|
+
|
|
421
|
+
<xsl:choose>
|
|
422
|
+
<xsl:when test="parent::xsd:* and $break-or-nobreak = 'break'">
|
|
423
|
+
<xsl:text>
</xsl:text>
|
|
424
|
+
<xsl:value-of select="$indent"/>
|
|
425
|
+
</xsl:when>
|
|
426
|
+
<xsl:otherwise>
|
|
427
|
+
<xsl:text> </xsl:text>
|
|
428
|
+
</xsl:otherwise>
|
|
429
|
+
</xsl:choose>
|
|
430
|
+
<xsl:value-of select="name()"/>
|
|
431
|
+
<xsl:text>="</xsl:text>
|
|
432
|
+
<xsl:choose>
|
|
433
|
+
<xsl:when test="parent::xsd:element
|
|
434
|
+
and namespace-uri() = ''
|
|
435
|
+
and local-name() = 'ref'
|
|
436
|
+
">
|
|
437
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
438
|
+
</xsl:when>
|
|
439
|
+
<xsl:when test="parent::xsd:attribute
|
|
440
|
+
and namespace-uri() = ''
|
|
441
|
+
and local-name() = 'ref'
|
|
442
|
+
">
|
|
443
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
444
|
+
</xsl:when>
|
|
445
|
+
<xsl:when test="parent::xsd:restriction
|
|
446
|
+
and namespace-uri() = ''
|
|
447
|
+
and local-name() = 'base'
|
|
448
|
+
">
|
|
449
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
450
|
+
</xsl:when>
|
|
451
|
+
<xsl:when test="parent::xsd:extension
|
|
452
|
+
and namespace-uri() = ''
|
|
453
|
+
and local-name() = 'base'
|
|
454
|
+
">
|
|
455
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
456
|
+
</xsl:when>
|
|
457
|
+
<xsl:when test="parent::xsd:group
|
|
458
|
+
and namespace-uri() = ''
|
|
459
|
+
and local-name() = 'ref'
|
|
460
|
+
">
|
|
461
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
462
|
+
</xsl:when>
|
|
463
|
+
<xsl:when test="parent::xsd:list
|
|
464
|
+
and namespace-uri() = ''
|
|
465
|
+
and local-name() = 'itemType'
|
|
466
|
+
">
|
|
467
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
468
|
+
</xsl:when>
|
|
469
|
+
<xsl:when test="parent::xsd:union
|
|
470
|
+
and namespace-uri() = ''
|
|
471
|
+
and local-name() = 'memberTypes'
|
|
472
|
+
">
|
|
473
|
+
<xsl:call-template name="makelink-several-maybe"/>
|
|
474
|
+
</xsl:when>
|
|
475
|
+
<xsl:when test="parent::xsd:element
|
|
476
|
+
and namespace-uri() = ''
|
|
477
|
+
and local-name() = 'type'
|
|
478
|
+
">
|
|
479
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
480
|
+
</xsl:when>
|
|
481
|
+
<xsl:when test="parent::xsd:attribute
|
|
482
|
+
and namespace-uri() = ''
|
|
483
|
+
and local-name() = 'type'
|
|
484
|
+
">
|
|
485
|
+
<xsl:call-template name="makelink-maybe"/>
|
|
486
|
+
</xsl:when>
|
|
487
|
+
<xsl:when test="parent::xsd:element
|
|
488
|
+
and namespace-uri() = ''
|
|
489
|
+
and local-name() = 'substitutionGroup'
|
|
490
|
+
">
|
|
491
|
+
<xsl:call-template name="makelink-several-maybe"/>
|
|
492
|
+
</xsl:when>
|
|
493
|
+
|
|
494
|
+
<xsl:otherwise>
|
|
495
|
+
<xsl:value-of select="."/>
|
|
496
|
+
</xsl:otherwise>
|
|
497
|
+
</xsl:choose>
|
|
498
|
+
<xsl:text>"</xsl:text>
|
|
499
|
+
|
|
500
|
+
</xsl:template>
|
|
501
|
+
<xsl:template match="text()" mode="echo-xml">
|
|
502
|
+
<xsl:value-of select="."/>
|
|
503
|
+
</xsl:template>
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
<!--* 6 toc *-->
|
|
507
|
+
<xsl:template mode="toc" match="
|
|
508
|
+
xsd:schema/xsd:annotation
|
|
509
|
+
| xsd:schema/xsd:attribute
|
|
510
|
+
| xsd:schema/xsd:element
|
|
511
|
+
| xsd:schema/xsd:simpleType
|
|
512
|
+
| xsd:schema/xsd:complexType
|
|
513
|
+
| xsd:schema/xsd:attributeGroup
|
|
514
|
+
| xsd:schema/xsd:import
|
|
515
|
+
| xsd:schema/xsd:group
|
|
516
|
+
| xsd:schema/xsd:notation
|
|
517
|
+
">
|
|
518
|
+
<xsl:call-template name="toc-entry"/>
|
|
519
|
+
</xsl:template>
|
|
520
|
+
|
|
521
|
+
<xsl:template name="toc-entry">
|
|
522
|
+
<xsl:variable name="sort">
|
|
523
|
+
<xsl:call-template name="sort"/>
|
|
524
|
+
</xsl:variable>
|
|
525
|
+
<xsl:variable name="leid">
|
|
526
|
+
<xsl:call-template name="leid"/>
|
|
527
|
+
</xsl:variable>
|
|
528
|
+
<xsl:element name="li">
|
|
529
|
+
<xsl:element name="a">
|
|
530
|
+
<xsl:attribute name="href">
|
|
531
|
+
<xsl:value-of select="concat('#',$leid)"/>
|
|
532
|
+
</xsl:attribute>
|
|
533
|
+
<xsl:choose>
|
|
534
|
+
<xsl:when test="self::xsd:annotation
|
|
535
|
+
and
|
|
536
|
+
( descendant::xhtml:h1 or descendant::xhtml:h2 or descendant::xhtml:h3
|
|
537
|
+
or descendant::h1 or descendant::h2 or descendant::h3)
|
|
538
|
+
">
|
|
539
|
+
<xsl:choose>
|
|
540
|
+
<xsl:when test="descendant::xhtml:h1">
|
|
541
|
+
<xsl:value-of select="descendant::xhtml:h1[1]"/>
|
|
542
|
+
</xsl:when>
|
|
543
|
+
<xsl:when test="descendant::h1">
|
|
544
|
+
<xsl:value-of select="descendant::h1[1]"/>
|
|
545
|
+
</xsl:when>
|
|
546
|
+
<xsl:when test="descendant::xhtml:h2">
|
|
547
|
+
<xsl:value-of select="descendant::xhtml:h2[1]"/>
|
|
548
|
+
</xsl:when>
|
|
549
|
+
<xsl:when test="descendant::h2">
|
|
550
|
+
<xsl:value-of select="descendant::h2[1]"/>
|
|
551
|
+
</xsl:when>
|
|
552
|
+
<xsl:when test="descendant::xhtml:h3">
|
|
553
|
+
<xsl:value-of select="descendant::xhtml:h3[1]"/>
|
|
554
|
+
</xsl:when>
|
|
555
|
+
<xsl:when test="descendant::h3">
|
|
556
|
+
<xsl:value-of select="descendant::h3[1]"/>
|
|
557
|
+
</xsl:when>
|
|
558
|
+
</xsl:choose>
|
|
559
|
+
|
|
560
|
+
</xsl:when>
|
|
561
|
+
<xsl:otherwise>
|
|
562
|
+
<xsl:value-of select="concat($sort,' ')"/>
|
|
563
|
+
<xsl:choose>
|
|
564
|
+
<xsl:when test="count(@name) = 1">
|
|
565
|
+
<xsl:element name="em">
|
|
566
|
+
<xsl:value-of select="@name"/>
|
|
567
|
+
</xsl:element>
|
|
568
|
+
</xsl:when>
|
|
569
|
+
<xsl:when test="self::xsd:annotation">
|
|
570
|
+
<xsl:value-of select="1 + count(preceding-sibling::xsd:annotation)"/>
|
|
571
|
+
</xsl:when>
|
|
572
|
+
<xsl:when test="self::xsd:import">
|
|
573
|
+
<xsl:element name="code">
|
|
574
|
+
<xsl:value-of select="@namespace"/>
|
|
575
|
+
</xsl:element>
|
|
576
|
+
</xsl:when>
|
|
577
|
+
<xsl:otherwise>
|
|
578
|
+
<!--* fake it *-->
|
|
579
|
+
<xsl:variable name="gi" select="local-name()"/>
|
|
580
|
+
<xsl:value-of select="1 + count(preceding-sibling::*[local-name() = $gi])"/>
|
|
581
|
+
</xsl:otherwise>
|
|
582
|
+
</xsl:choose>
|
|
583
|
+
</xsl:otherwise>
|
|
584
|
+
</xsl:choose>
|
|
585
|
+
</xsl:element>
|
|
586
|
+
</xsl:element>
|
|
587
|
+
|
|
588
|
+
</xsl:template>
|
|
589
|
+
|
|
590
|
+
<!--* 7 common code for calculating sort and little-endian IDs *-->
|
|
591
|
+
<xsl:template name="sort">
|
|
592
|
+
<xsl:choose>
|
|
593
|
+
<xsl:when test="self::xsd:annotation">
|
|
594
|
+
<xsl:value-of select="'Annotation'"/>
|
|
595
|
+
</xsl:when>
|
|
596
|
+
<xsl:when test="self::xsd:attribute">
|
|
597
|
+
<xsl:value-of select="'Attribute'"/>
|
|
598
|
+
</xsl:when>
|
|
599
|
+
<xsl:when test="self::xsd:element">
|
|
600
|
+
<xsl:value-of select="'Element'"/>
|
|
601
|
+
</xsl:when>
|
|
602
|
+
<xsl:when test="self::xsd:simpleType">
|
|
603
|
+
<xsl:value-of select="'Simple type'"/>
|
|
604
|
+
</xsl:when>
|
|
605
|
+
<xsl:when test="self::xsd:complexType">
|
|
606
|
+
<xsl:value-of select="'Complex type'"/>
|
|
607
|
+
</xsl:when>
|
|
608
|
+
<xsl:when test="self::xsd:attributeGroup">
|
|
609
|
+
<xsl:value-of select="'Attribute group'"/>
|
|
610
|
+
</xsl:when>
|
|
611
|
+
<xsl:when test="self::xsd:group">
|
|
612
|
+
<xsl:value-of select="'Model group'"/>
|
|
613
|
+
</xsl:when>
|
|
614
|
+
<xsl:otherwise>
|
|
615
|
+
<xsl:variable name="gi" select="local-name()"/>
|
|
616
|
+
<xsl:value-of select="concat(
|
|
617
|
+
translate(substring($gi,1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),
|
|
618
|
+
substring($gi,2)
|
|
619
|
+
)"/>
|
|
620
|
+
</xsl:otherwise>
|
|
621
|
+
</xsl:choose>
|
|
622
|
+
</xsl:template>
|
|
623
|
+
<xsl:template name="leid">
|
|
624
|
+
<xsl:choose>
|
|
625
|
+
<xsl:when test="self::xsd:annotation">
|
|
626
|
+
<xsl:value-of select="concat('ann_',
|
|
627
|
+
string(1+count(preceding-sibling::xsd:annotation)))"/>
|
|
628
|
+
</xsl:when>
|
|
629
|
+
<xsl:when test="self::xsd:attribute">
|
|
630
|
+
<xsl:value-of select="concat('att_',@name)"/>
|
|
631
|
+
</xsl:when>
|
|
632
|
+
<xsl:when test="self::xsd:element">
|
|
633
|
+
<xsl:value-of select="concat('elem_',@name)"/>
|
|
634
|
+
</xsl:when>
|
|
635
|
+
<xsl:when test="self::xsd:simpleType">
|
|
636
|
+
<xsl:value-of select="concat('type_',@name)"/>
|
|
637
|
+
</xsl:when>
|
|
638
|
+
<xsl:when test="self::xsd:complexType">
|
|
639
|
+
<xsl:value-of select="concat('type_',@name)"/>
|
|
640
|
+
</xsl:when>
|
|
641
|
+
<xsl:when test="self::xsd:attributeGroup">
|
|
642
|
+
<xsl:value-of select="concat('attgrp_',@name)"/>
|
|
643
|
+
</xsl:when>
|
|
644
|
+
<xsl:when test="self::xsd:group">
|
|
645
|
+
<xsl:value-of select="concat('grp_',@name)"/>
|
|
646
|
+
</xsl:when>
|
|
647
|
+
<xsl:when test="self::xsd:import">
|
|
648
|
+
<xsl:value-of select="concat('imp_',
|
|
649
|
+
string(1+count(preceding-sibling::xsd:import)))"/>
|
|
650
|
+
</xsl:when>
|
|
651
|
+
<xsl:otherwise>
|
|
652
|
+
<xsl:choose>
|
|
653
|
+
<xsl:when test="@name">
|
|
654
|
+
<xsl:variable name="sort" select="local-name()"/>
|
|
655
|
+
<xsl:value-of select="concat($sort,'_',@name)"/>
|
|
656
|
+
</xsl:when>
|
|
657
|
+
<xsl:otherwise>
|
|
658
|
+
<xsl:variable name="sort" select="local-name()"/>
|
|
659
|
+
<xsl:variable name="pos" select="1 + count(preceding-sibling::*[local-name() = $sort])"/>
|
|
660
|
+
<xsl:value-of select="concat($sort,'_',$pos)"/>
|
|
661
|
+
</xsl:otherwise>
|
|
662
|
+
</xsl:choose>
|
|
663
|
+
</xsl:otherwise>
|
|
664
|
+
</xsl:choose>
|
|
665
|
+
</xsl:template>
|
|
666
|
+
|
|
667
|
+
<!--* 8 unmatched elements (mostly diagnostic for development) *-->
|
|
668
|
+
<xsl:template match="*|@*">
|
|
669
|
+
<xsl:variable name="fqgi">
|
|
670
|
+
<xsl:call-template name="fqgi"/>
|
|
671
|
+
</xsl:variable>
|
|
672
|
+
<xsl:message>Warning: <xsl:value-of select="$fqgi"/> not matched.</xsl:message>
|
|
673
|
+
<xsl:element name="div">
|
|
674
|
+
<xsl:attribute name="class">warning</xsl:attribute>
|
|
675
|
+
<xsl:value-of select="concat('<',name(),'>')"/>
|
|
676
|
+
<xsl:copy>
|
|
677
|
+
<xsl:apply-templates select="@*|node()"/>
|
|
678
|
+
</xsl:copy>
|
|
679
|
+
<xsl:value-of select="concat('</',name(),'>')"/>
|
|
680
|
+
</xsl:element>
|
|
681
|
+
</xsl:template>
|
|
682
|
+
|
|
683
|
+
<xsl:template name="fqgi" match="*" mode="fqgi">
|
|
684
|
+
<xsl:param name="sBuf"/>
|
|
685
|
+
<xsl:variable name="sCur">
|
|
686
|
+
<xsl:choose>
|
|
687
|
+
<xsl:when test="self::*">
|
|
688
|
+
<!--* elements *-->
|
|
689
|
+
<xsl:value-of select="name()"/>
|
|
690
|
+
</xsl:when>
|
|
691
|
+
<xsl:otherwise>
|
|
692
|
+
<!--* attributes and other riffraff *-->
|
|
693
|
+
<xsl:value-of select="concat('@',name())"/>
|
|
694
|
+
</xsl:otherwise>
|
|
695
|
+
</xsl:choose>
|
|
696
|
+
</xsl:variable>
|
|
697
|
+
<!--*
|
|
698
|
+
<xsl:message>FQGI(<xsl:value-of select="concat($sBuf,',',$sCur)"/>)</xsl:message>
|
|
699
|
+
*-->
|
|
700
|
+
<xsl:choose>
|
|
701
|
+
<xsl:when test="parent::*">
|
|
702
|
+
<xsl:apply-templates mode="fqgi" select="parent::*">
|
|
703
|
+
<xsl:with-param name="sBuf">
|
|
704
|
+
<xsl:value-of select="concat('/',$sCur,$sBuf)"/>
|
|
705
|
+
</xsl:with-param>
|
|
706
|
+
</xsl:apply-templates>
|
|
707
|
+
</xsl:when>
|
|
708
|
+
<xsl:otherwise>
|
|
709
|
+
<xsl:value-of select="concat('/',$sCur,$sBuf)"/>
|
|
710
|
+
</xsl:otherwise>
|
|
711
|
+
</xsl:choose>
|
|
712
|
+
</xsl:template>
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
<!--* 9 intra-document link calculation, qname manipulation *-->
|
|
716
|
+
<xsl:template name="makelink-several-maybe">
|
|
717
|
+
<xsl:param name="lQNames" select="normalize-space(.)"/>
|
|
718
|
+
<xsl:choose>
|
|
719
|
+
<xsl:when test="contains($lQNames,' ')">
|
|
720
|
+
<!--* recur *-->
|
|
721
|
+
<xsl:call-template name="makelink-maybe">
|
|
722
|
+
<xsl:with-param name="qn" select="substring-before($lQNames,' ')"/>
|
|
723
|
+
</xsl:call-template>
|
|
724
|
+
<xsl:text> </xsl:text>
|
|
725
|
+
<xsl:call-template name="makelink-several-maybe">
|
|
726
|
+
<xsl:with-param name="lQNames" select="substring-after($lQNames,' ')"/>
|
|
727
|
+
</xsl:call-template>
|
|
728
|
+
</xsl:when>
|
|
729
|
+
<xsl:otherwise>
|
|
730
|
+
<!--* base step, no blank so at most one QName *-->
|
|
731
|
+
<xsl:call-template name="makelink-maybe">
|
|
732
|
+
<xsl:with-param name="qn" select="$lQNames"/>
|
|
733
|
+
</xsl:call-template>
|
|
734
|
+
</xsl:otherwise>
|
|
735
|
+
</xsl:choose>
|
|
736
|
+
</xsl:template>
|
|
737
|
+
|
|
738
|
+
<xsl:template name="makelink-maybe">
|
|
739
|
+
<xsl:param name="qn" select="."/>
|
|
740
|
+
<xsl:param name="refns">
|
|
741
|
+
<xsl:call-template name="qname-to-uri">
|
|
742
|
+
<xsl:with-param name="qname" select="$qn"/>
|
|
743
|
+
</xsl:call-template>
|
|
744
|
+
</xsl:param>
|
|
745
|
+
<xsl:param name="lname">
|
|
746
|
+
<xsl:call-template name="qname-to-ncname">
|
|
747
|
+
<xsl:with-param name="qname" select="$qn"/>
|
|
748
|
+
</xsl:call-template>
|
|
749
|
+
</xsl:param>
|
|
750
|
+
|
|
751
|
+
<xsl:variable name="linktarget">
|
|
752
|
+
<xsl:choose>
|
|
753
|
+
<xsl:when test="$tns = $refns">
|
|
754
|
+
<xsl:choose>
|
|
755
|
+
<xsl:when test="parent::xsd:element
|
|
756
|
+
and local-name() = 'ref'
|
|
757
|
+
and count(/xsd:schema/xsd:element[@name = $lname]) = 1">
|
|
758
|
+
<xsl:value-of select="concat('elem_',$lname)"/>
|
|
759
|
+
</xsl:when>
|
|
760
|
+
<xsl:when test="parent::xsd:element
|
|
761
|
+
and local-name() = 'substitutionGroup'
|
|
762
|
+
and count(/xsd:schema/xsd:element[@name = $lname]) = 1">
|
|
763
|
+
<xsl:value-of select="concat('elem_',$lname)"/>
|
|
764
|
+
</xsl:when>
|
|
765
|
+
<xsl:when test="parent::xsd:attribute
|
|
766
|
+
and local-name() = 'ref'
|
|
767
|
+
and count(/xsd:schema/xsd:attribute[@name = $lname]) = 1">
|
|
768
|
+
<xsl:value-of select="concat('att_',$lname)"/>
|
|
769
|
+
</xsl:when>
|
|
770
|
+
<xsl:when test="parent::xsd:restriction
|
|
771
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
772
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
773
|
+
= 1">
|
|
774
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
775
|
+
</xsl:when>
|
|
776
|
+
<xsl:when test="parent::xsd:extension
|
|
777
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
778
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
779
|
+
= 1">
|
|
780
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
781
|
+
</xsl:when>
|
|
782
|
+
<xsl:when test="parent::xsd:element
|
|
783
|
+
and local-name() = 'type'
|
|
784
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
785
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
786
|
+
= 1">
|
|
787
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
788
|
+
</xsl:when>
|
|
789
|
+
<xsl:when test="parent::xsd:attribute
|
|
790
|
+
and local-name() = 'type'
|
|
791
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
792
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
793
|
+
= 1">
|
|
794
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
795
|
+
</xsl:when>
|
|
796
|
+
<xsl:when test="parent::xsd:list
|
|
797
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
798
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
799
|
+
= 1">
|
|
800
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
801
|
+
</xsl:when>
|
|
802
|
+
<xsl:when test="parent::xsd:union
|
|
803
|
+
and count(/xsd:schema/xsd:*[@name = $lname
|
|
804
|
+
and (self::xsd:simpleType or self::xsd:complexType)])
|
|
805
|
+
= 1">
|
|
806
|
+
<xsl:value-of select="concat('type_',$lname)"/>
|
|
807
|
+
</xsl:when>
|
|
808
|
+
<xsl:when test="parent::xsd:group
|
|
809
|
+
and count(/xsd:schema/xsd:group[@name = $lname]) = 1">
|
|
810
|
+
<xsl:value-of select="concat('grp_',$lname)"/>
|
|
811
|
+
</xsl:when>
|
|
812
|
+
<xsl:when test="parent::xsd:attributeGroup
|
|
813
|
+
and count(/xsd:schema/xsd:atributeGroup[@name = $lname]) = 1">
|
|
814
|
+
<xsl:value-of select="concat('attgrp_',$lname)"/>
|
|
815
|
+
</xsl:when>
|
|
816
|
+
<!--* static links to built-ins could be handled here *-->
|
|
817
|
+
</xsl:choose>
|
|
818
|
+
</xsl:when>
|
|
819
|
+
<xsl:when test="count(ancestor::*/namespace::*) = 0">
|
|
820
|
+
<!--* we are either in a no-namespace document in Opera,
|
|
821
|
+
* or we are in Firefox, without ns support.
|
|
822
|
+
*-->
|
|
823
|
+
<xsl:value-of select="'no-ns-support'"/>
|
|
824
|
+
</xsl:when>
|
|
825
|
+
<xsl:otherwise>
|
|
826
|
+
<!--* namespaces did not match, no target *-->
|
|
827
|
+
<xsl:value-of select="'no-target'"/>
|
|
828
|
+
</xsl:otherwise>
|
|
829
|
+
</xsl:choose>
|
|
830
|
+
</xsl:variable>
|
|
831
|
+
|
|
832
|
+
<xsl:choose>
|
|
833
|
+
<xsl:when test="($linktarget='no-ns-support')">
|
|
834
|
+
<xsl:value-of select="$qn"/>
|
|
835
|
+
</xsl:when>
|
|
836
|
+
<xsl:when test="($linktarget='no-target' or $linktarget='')
|
|
837
|
+
and ($tns = $refns)">
|
|
838
|
+
<xsl:element name="span">
|
|
839
|
+
<xsl:attribute name="class">external-link same-ns</xsl:attribute>
|
|
840
|
+
<xsl:value-of select="$qn"/>
|
|
841
|
+
</xsl:element>
|
|
842
|
+
</xsl:when>
|
|
843
|
+
<xsl:when test="($linktarget='no-target')
|
|
844
|
+
and not($tns = $refns)">
|
|
845
|
+
<xsl:element name="span">
|
|
846
|
+
<xsl:attribute name="class">external-link diff-ns</xsl:attribute>
|
|
847
|
+
<xsl:value-of select="$qn"/>
|
|
848
|
+
</xsl:element>
|
|
849
|
+
</xsl:when>
|
|
850
|
+
<xsl:otherwise>
|
|
851
|
+
<xsl:element name="a">
|
|
852
|
+
<xsl:attribute name="href">
|
|
853
|
+
<xsl:value-of select="concat('#',$linktarget)"/>
|
|
854
|
+
</xsl:attribute>
|
|
855
|
+
<xsl:value-of select="$qn"/>
|
|
856
|
+
</xsl:element>
|
|
857
|
+
</xsl:otherwise>
|
|
858
|
+
</xsl:choose>
|
|
859
|
+
</xsl:template>
|
|
860
|
+
|
|
861
|
+
<xsl:template name="qname-to-uri" match="*" mode="qname-to-uri">
|
|
862
|
+
<xsl:param name="qname" select="."/>
|
|
863
|
+
<xsl:variable name="prefix" select="substring-before($qname,':')"/>
|
|
864
|
+
<xsl:choose>
|
|
865
|
+
<xsl:when test="(1=1) and ($prefix='xml')">
|
|
866
|
+
<!--* we need to special-case 'xml', since
|
|
867
|
+
* Opera does not provide a ns node for it.
|
|
868
|
+
*-->
|
|
869
|
+
<xsl:value-of select="'http://www.w3.org/XML/1998/namespace'"/>
|
|
870
|
+
</xsl:when>
|
|
871
|
+
<xsl:when test="self::*">
|
|
872
|
+
<!--* we're an element *-->
|
|
873
|
+
<xsl:value-of select="string(namespace::*[name()=$prefix])"/>
|
|
874
|
+
</xsl:when>
|
|
875
|
+
<xsl:otherwise>
|
|
876
|
+
<!--* we're not an element *-->
|
|
877
|
+
<xsl:value-of select="string(parent::*/namespace::*[name()=$prefix])"/>
|
|
878
|
+
</xsl:otherwise>
|
|
879
|
+
</xsl:choose>
|
|
880
|
+
</xsl:template>
|
|
881
|
+
<xsl:template name="qname-to-ncname">
|
|
882
|
+
<xsl:param name="qname" select="."/>
|
|
883
|
+
<xsl:choose>
|
|
884
|
+
<xsl:when test="contains($qname,':')">
|
|
885
|
+
<xsl:value-of select="substring-after($qname,':')"/>
|
|
886
|
+
</xsl:when>
|
|
887
|
+
<xsl:otherwise>
|
|
888
|
+
<xsl:value-of select="$qname"/>
|
|
889
|
+
</xsl:otherwise>
|
|
890
|
+
</xsl:choose>
|
|
891
|
+
</xsl:template>
|
|
892
|
+
|
|
893
|
+
<xsl:template name="lastline-suffix">
|
|
894
|
+
<xsl:param name="s0"></xsl:param>
|
|
895
|
+
<xsl:choose>
|
|
896
|
+
<xsl:when test="contains($s0,'
')">
|
|
897
|
+
<xsl:call-template name="lastline-suffix">
|
|
898
|
+
<xsl:with-param name="s0" select="substring-after($s0,'
')"/>
|
|
899
|
+
</xsl:call-template>
|
|
900
|
+
</xsl:when>
|
|
901
|
+
<xsl:otherwise>
|
|
902
|
+
<xsl:value-of select="$s0"/>
|
|
903
|
+
</xsl:otherwise>
|
|
904
|
+
</xsl:choose>
|
|
905
|
+
</xsl:template>
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
<xsl:template name="stag-width">
|
|
909
|
+
<xsl:param name="indent-length" select="0"/>
|
|
910
|
+
|
|
911
|
+
<xsl:variable name="attcount" select="count(@*)"/>
|
|
912
|
+
<xsl:variable name="list-attname-lengths">
|
|
913
|
+
<xsl:call-template name="make-length-list">
|
|
914
|
+
<xsl:with-param name="kw">attnames</xsl:with-param>
|
|
915
|
+
</xsl:call-template>
|
|
916
|
+
</xsl:variable>
|
|
917
|
+
|
|
918
|
+
<xsl:variable name="list-attval-lengths">
|
|
919
|
+
<xsl:call-template name="make-length-list">
|
|
920
|
+
<xsl:with-param name="kw">attvals</xsl:with-param>
|
|
921
|
+
</xsl:call-template>
|
|
922
|
+
</xsl:variable>
|
|
923
|
+
|
|
924
|
+
<xsl:variable name="sum-att-lengths">
|
|
925
|
+
<xsl:call-template name="sum-list">
|
|
926
|
+
<xsl:with-param name="s0" select="concat($list-attname-lengths,' ',$list-attval-lengths)"/>
|
|
927
|
+
</xsl:call-template>
|
|
928
|
+
</xsl:variable>
|
|
929
|
+
|
|
930
|
+
<!--*
|
|
931
|
+
<xsl:message>indent-length = <xsl:value-of select="$indent-length"/></xsl:message>
|
|
932
|
+
<xsl:message>attcount = <xsl:value-of select="$attcount"/></xsl:message>
|
|
933
|
+
<xsl:message>sum-att-lengths = <xsl:value-of select="$sum-att-lengths"/></xsl:message>
|
|
934
|
+
<xsl:message>namelen = <xsl:value-of select="string-length(name())"/></xsl:message>
|
|
935
|
+
*-->
|
|
936
|
+
|
|
937
|
+
<xsl:value-of select="$indent-length + (4 * $attcount) + $sum-att-lengths + string-length(name()) + 3"/>
|
|
938
|
+
|
|
939
|
+
</xsl:template>
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
<xsl:template name="make-length-list">
|
|
943
|
+
<xsl:param name="kw">unknown</xsl:param>
|
|
944
|
+
<xsl:choose>
|
|
945
|
+
<xsl:when test="$kw = 'attnames'">
|
|
946
|
+
<xsl:apply-templates select="@*" mode="attnamelength"/>
|
|
947
|
+
</xsl:when>
|
|
948
|
+
<xsl:when test="$kw = 'attvals'">
|
|
949
|
+
<xsl:apply-templates select="@*" mode="attvallength"/>
|
|
950
|
+
</xsl:when>
|
|
951
|
+
<xsl:otherwise>0</xsl:otherwise>
|
|
952
|
+
</xsl:choose>
|
|
953
|
+
</xsl:template>
|
|
954
|
+
|
|
955
|
+
<xsl:template name="sum-list">
|
|
956
|
+
<xsl:param name="n0" select="0"/>
|
|
957
|
+
<xsl:param name="s0"/>
|
|
958
|
+
|
|
959
|
+
<xsl:variable name="s1" select="normalize-space($s0)"/>
|
|
960
|
+
|
|
961
|
+
<!--*
|
|
962
|
+
<xsl:message><xsl:value-of select="concat('n0 =', $n0, ', s1 = /',$s1,'/')"/></xsl:message>
|
|
963
|
+
*-->
|
|
964
|
+
|
|
965
|
+
<xsl:choose>
|
|
966
|
+
<xsl:when test="contains($s1,' ')">
|
|
967
|
+
<xsl:variable name="term" select="substring-before($s1,' ')"/>
|
|
968
|
+
<xsl:variable name="s2" select="substring-after($s1,' ')"/>
|
|
969
|
+
<xsl:call-template name="sum-list">
|
|
970
|
+
<xsl:with-param name="n0" select="$n0 + $term"/>
|
|
971
|
+
<xsl:with-param name="s0" select="$s2"/>
|
|
972
|
+
</xsl:call-template>
|
|
973
|
+
</xsl:when>
|
|
974
|
+
<xsl:otherwise>
|
|
975
|
+
<xsl:value-of select="$n0 + $s1"/>
|
|
976
|
+
</xsl:otherwise>
|
|
977
|
+
</xsl:choose>
|
|
978
|
+
</xsl:template>
|
|
979
|
+
|
|
980
|
+
<xsl:template match="@*" mode="attnamelength">
|
|
981
|
+
<xsl:value-of select="concat(string-length(name()), ' ')"/>
|
|
982
|
+
</xsl:template>
|
|
983
|
+
<xsl:template match="@*" mode="attvallength">
|
|
984
|
+
<xsl:value-of select="concat(string-length(.), ' ')"/>
|
|
985
|
+
</xsl:template>
|
|
986
|
+
|
|
987
|
+
</xsl:stylesheet>
|
|
988
|
+
<!-- Keep this comment at the end of the file
|
|
989
|
+
Local variables:
|
|
990
|
+
mode: xml
|
|
991
|
+
sgml-default-dtd-file:"/Library/SGML/Public/Emacs/xslt.ced"
|
|
992
|
+
sgml-omittag:t
|
|
993
|
+
sgml-shorttag:t
|
|
994
|
+
sgml-indent-data:t
|
|
995
|
+
sgml-indent-step:1
|
|
996
|
+
End:
|
|
997
|
+
-->
|