Mercurial > dive4elements > river
annotate artifacts/contrib/inline-dc-attribute.xsl @ 8682:5102733c4567
issue1755 Prevent out of bounds access when there is no data
If there is no data it will default to the complete river.
In the following overview you can then see that there is no
data. Better then a "Error changing state".
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 13 Apr 2015 11:03:00 +0200 |
parents | 5aa05a7a34b7 |
children |
rev | line source |
---|---|
5499
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
1 <?xml version="1.0" encoding="UTF-8"?> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
2 <!-- |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
3 inline-dc-attribute.xsl |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
4 ======================= |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
5 Transforms datacage templates from: |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
6 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
7 <foo> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
8 <dc:element name="bar" value="${baz}"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
9 <dc:element name="bla" value="${blub}-${urgs}"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
10 </foo> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
11 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
12 to: |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
13 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
14 <foo bar="{$bar} bla="{$blub}-{$urgs}/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
15 --> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
16 <xsl:stylesheet version="1.0" |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
17 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
18 xmlns:dc="http://www.intevation.org/2011/Datacage"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
19 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
20 <xsl:output method="xml" encoding="UTF-8" indent="yes"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
21 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
22 <xsl:template name="string-replace-all"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
23 <xsl:param name="text"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
24 <xsl:param name="replace"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
25 <xsl:param name="by"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
26 <xsl:choose> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
27 <xsl:when test="contains($text, $replace)"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
28 <xsl:value-of select="substring-before($text,$replace)"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
29 <xsl:value-of select="$by"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
30 <xsl:call-template name="string-replace-all"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
31 <xsl:with-param name="text" select="substring-after($text,$replace)"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
32 <xsl:with-param name="replace" select="$replace"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
33 <xsl:with-param name="by" select="$by"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
34 </xsl:call-template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
35 </xsl:when> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
36 <xsl:otherwise> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
37 <xsl:value-of select="$text"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
38 </xsl:otherwise> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
39 </xsl:choose> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
40 </xsl:template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
41 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
42 <xsl:template |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
43 match="node()[count(dc:attribute) > 0 and namespace-uri() != 'http://www.intevation.org/2011/Datacage']"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
44 <xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
45 <xsl:for-each select="./dc:attribute"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
46 <xsl:attribute name="{@name}"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
47 <xsl:call-template name="string-replace-all"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
48 <xsl:with-param name="text" select="@value"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
49 <xsl:with-param name="replace">${</xsl:with-param> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
50 <xsl:with-param name="by">{$</xsl:with-param> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
51 </xsl:call-template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
52 </xsl:attribute> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
53 </xsl:for-each> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
54 <xsl:apply-templates select="@*|node()" mode="ignore-text"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
55 </xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
56 </xsl:template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
57 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
58 <xsl:template match="dc:attribute|text()" mode="ignore-text"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
59 <xsl:template match="@*|node()" mode="ignore-text"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
60 <xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
61 <xsl:apply-templates select="@*|node()"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
62 </xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
63 </xsl:template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
64 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
65 <xsl:template match="@*|node()"> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
66 <xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
67 <xsl:apply-templates select="@*|node()"/> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
68 </xsl:copy> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
69 </xsl:template> |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
70 |
43bf4976dd24
Add XSL transformation that replaces <dc:attribute> with their shortened inline notation.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
71 </xsl:stylesheet> |