Project

General

Profile

« Previous | Next » 

Revision 10056

Added by Bryce Mecum over 7 years ago

Continue work on ISO XSLT

- Cleans up the root element to better match what we want in the end (looks like the EML XSLT)
- Switches a lot of calls to call-template over to apply-templates. I think this is a good idea because the ISO standards use XSD type equivalence to extend existing schemas. e.g., gmx:Anchors can show up when the gmd schema says only a gco:CharacterString should go there
- Adds support for a lot more element types
- Cleans up indentation. I'm probably going to want to change this later but oh well. At least it's the same across files. Sorry if you don't like two-space soft tabs.
- Removes numerous unused templates and puts some into the iso-md XSLT which should probably get called something else anyways

View differences:

iso-ci.xsl
1 1
<?xml version="1.0"?>
2 2
<xsl:stylesheet 
3 3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
4
  xmlns:gmd="http://www.isotc211.org/2005/gmd" 
4
  xmlns:gmd="http://www.isotc211.org/2005/gmd"
5
  xmlns:gco="http://www.isotc211.org/2005/gco" 
5 6
  version="1.0">
6 7

  
7 8
  <!-- CI_ResponsibleParty -->
8
  <xsl:template name="ci_responsibleparty" match="gmd:CI_ResponsibleParty">
9
    <xsl:if test="./gmd:individualName">
9
  <xsl:template match="gmd:CI_ResponsibleParty">
10
    <div class="controls-well">
11
      <xsl:if test="./gmd:individualName">
12
        <div class="control-group">
13
          <label class="control-label">Individual</label>
14
          <div class="controls">
15
            <div class="controls-well">
16
              <xsl:apply-templates select="./gmd:individualName" />
17
            </div>
18
          </div>
19
        </div>
20
      </xsl:if>
21

  
22
      <xsl:if test="./gmd:organisationName">
23
        <div class="control-group">
24
          <label class="control-label">Organization</label>
25
          <div class="controls">
26
            <div class="controls-well">
27
              <xsl:apply-templates select="./gmd:organisationName" />
28
            </div>
29
          </div>
30
        </div>
31
      </xsl:if>
32

  
33
      <xsl:if test="./gmd:positionName">
34
        <div class="control-group">
35
          <label class="control-label">Position</label>
36
          <div class="controls">
37
            <div class="controls-well">
38
              <xsl:apply-templates select="./gmd:positionName" />
39
            </div>
40
          </div>
41
        </div>
42
      </xsl:if>
43

  
44
      <xsl:if test="./gmd:contactInfo/gmd:CI_Contact/gmd:phone">
45
        <div class="control-group">
46
          <label class="control-label">Phone</label>
47
          <div class="controls">
48
            <div class="controls-well">
49
              <xsl:apply-templates select="./gmd:contactInfo/gmd:CI_Contact/gmd:phone" />
50
            </div>
51
          </div>
52
        </div>
53
      </xsl:if>
54

  
55
      <xsl:if test="./gmd:contactInfo/gmd:CI_Contact/gmd:address">
56
        <div class="control-group">
57
          <label class="control-label">Address</label>
58
          <div class="controls">
59
            <div class="controls-well">
60
              <xsl:apply-templates select="./gmd:contactInfo/gmd:CI_Contact/gmd:address" />
61
            </div>
62
          </div>
63
        </div>
64
      </xsl:if>
65

  
66
      <xsl:if test="./gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource">
67
        <div class="control-group">
68
          <label class="control-label">Online Resource</label>
69
          <div class="controls">
70
            <div class="controls-well">
71
              <xsl:apply-templates select="./gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource" />
72
            </div>
73
          </div>
74
        </div>
75
      </xsl:if>
76

  
77
      <xsl:if test="./gmd:contactInfo/gmd:CI_Contact/gmd:hoursOfService">
78
        <div class="control-group">
79
          <label class="control-label">Hours of Service</label>
80
          <div class="controls">
81
            <div class="controls-well">
82
              <xsl:apply-templates select="./gmd:contactInfo/gmd:CI_Contact/gmd:hoursOfService" />
83
            </div>
84
          </div>
85
        </div>
86
      </xsl:if>
87

  
88
      <xsl:if test="./gmd:contactInfo/gmd:CI_Contact/gmd:contactInstructions">
89
        <div class="control-group">
90
          <label class="control-label">Contact Instructions</label>
91
          <div class="controls">
92
            <div class="controls-well">
93
              <xsl:apply-templates select="./gmd:contactInfo/gmd:CI_Contact/gmd:contactInstructions" />
94
            </div>
95
          </div>
96
        </div>
97
      </xsl:if>
98

  
99
      <xsl:if test="./gmd:role">
100
        <div class="control-group">
101
          <label class="control-label">Role</label>
102
          <div class="controls">
103
            <div class="controls-well">
104
              <xsl:apply-templates select="./gmd:role" />
105
            </div>
106
          </div>
107
        </div>
108
      </xsl:if>
109
    </div>
110
  </xsl:template>
111

  
112
  <xsl:template match="gmd:CI_RoleCode">
113
    <xsl:apply-templates />
114
  </xsl:template>
115
  
116
  <xsl:template match="gmd:CI_Telephone">
117
    <xsl:for-each select="./gmd:voice">
10 118
      <div class="control-group">
11
        <label class="control-label">Individual</label>
119
          <label class="control-label">Voice</label>
120
          <div class="controls">
121
            <div class="controls-well">
122
              <xsl:apply-templates />
123
            </div>
124
          </div>
125
        </div>
126
    </xsl:for-each>
127

  
128
    <xsl:for-each select="./gmd:facsimile">
129
      <div class="control-group">
130
          <label class="control-label">Fax</label>
131
          <div class="controls">
132
            <div class="controls-well">
133
              <xsl:apply-templates />
134
            </div>
135
          </div>
136
        </div>
137
    </xsl:for-each>
138
  </xsl:template>
139
  
140
  <xsl:template match="gmd:CI_Address">
141
    <xsl:for-each select="./gmd:deliveryPoint">
142
      <div class="control-group">
143
          <label class="control-label">Delivery Point</label>
144
          <div class="controls">
145
            <div class="controls-well">
146
              <xsl:apply-templates />
147
            </div>
148
          </div>
149
        </div>
150
    </xsl:for-each>
151

  
152
    <xsl:if test="./gmd:city">
153
      <div class="control-group">
154
        <label class="control-label">City</label>
12 155
        <div class="controls">
13 156
          <div class="controls-well">
14
            <xsl:apply-templates select="./gmd:individualName/*" />
157
            <xsl:apply-templates select="./gmd:city" />
15 158
          </div>
16 159
        </div>
17 160
      </div>
18 161
    </xsl:if>
19
    <xsl:if test="./gmd:organisationName">
162

  
163
    <xsl:if test="./gmd:administrativeArea">
20 164
      <div class="control-group">
21
        <label class="control-label">Organization</label>
165
        <label class="control-label">Administrative Area</label>
22 166
        <div class="controls">
23 167
          <div class="controls-well">
24
            <xsl:apply-templates select="./gmd:organisationName/*" />
168
            <xsl:apply-templates select="./gmd:administrativeArea" />
25 169
          </div>
26 170
        </div>
27 171
      </div>
28 172
    </xsl:if>
29
    <xsl:if test="./gmd:positionName">
173
    
174
    <xsl:if test="./gmd:postalCode">
30 175
      <div class="control-group">
31
        <label class="control-label">Position</label>
176
        <label class="control-label">Postal Code</label>
32 177
        <div class="controls">
33 178
          <div class="controls-well">
34
            <xsl:apply-templates select="./gmd:positionName/*" />
179
            <xsl:apply-templates select="./gmd:postalCode" />
35 180
          </div>
36 181
        </div>
37 182
      </div>
38 183
    </xsl:if>
39
    <xsl:if test="./gmd:role">
184
    
185
    <xsl:if test="./gmd:country">
40 186
      <div class="control-group">
41
        <label class="control-label">Role</label>
187
        <label class="control-label">Country</label>
42 188
        <div class="controls">
43 189
          <div class="controls-well">
44
            <xsl:value-of select="./gmd:role/gmd:CI_RoleCode" />
190
            <xsl:apply-templates select="./gmd:country" />
45 191
          </div>
46 192
        </div>
47 193
      </div>
48 194
    </xsl:if>
195

  
196
    <xsl:for-each select="./gmd:electronicMailAddress">
197
      <div class="control-group">
198
          <label class="control-label">E-Mail</label>
199
          <div class="controls">
200
            <div class="controls-well">
201

  
202
              <xsl:variable name="email" select="./gco:CharacterString/text()" />
203
              <xsl:element name="a">
204
                <xsl:attribute name="href">mailto:<xsl:value-of select="$email" /></xsl:attribute>
205
                <xsl:value-of select="$email" />
206
              </xsl:element>
207
            </div>
208
          </div>
209
        </div>
210
    </xsl:for-each>
49 211
  </xsl:template>
212

  
213
  <xsl:template match="gmd:CI_OnlineResource">
214
    <xsl:if test="./gmd:linkage">
215
      <div class="control-group">
216
        <label class="control-label">linkage</label>
217
        <div class="controls">
218
          <div class="controls-well">
219
            <xsl:apply-templates select="./gmd:linkage" />
220
          </div>
221
        </div>
222
      </div>
223
    </xsl:if>
224

  
225
    <xsl:if test="./gmd:protocol">
226
      <div class="control-group">
227
        <label class="control-label">protocol</label>
228
        <div class="controls">
229
          <div class="controls-well">
230
            <xsl:apply-templates select="./gmd:protocol" />
231
          </div>
232
        </div>
233
      </div>
234
    </xsl:if>
235

  
236
    <xsl:if test="./gmd:applicationProfile">
237
      <div class="control-group">
238
        <label class="control-label">applicationProfile</label>
239
        <div class="controls">
240
          <div class="controls-well">
241
            <xsl:apply-templates select="./gmd:applicationProfile" />
242
          </div>
243
        </div>
244
      </div>
245
    </xsl:if>
246

  
247
    <xsl:if test="./gmd:name">
248
      <div class="control-group">
249
        <label class="control-label">name</label>
250
        <div class="controls">
251
          <div class="controls-well">
252
            <xsl:apply-templates select="./gmd:name" />
253
          </div>
254
        </div>
255
      </div>
256
    </xsl:if>
257

  
258
    <xsl:if test="./gmd:description">
259
      <div class="control-group">
260
        <label class="control-label">description</label>
261
        <div class="controls">
262
          <div class="controls-well">
263
            <xsl:apply-templates select="./gmd:description" />
264
          </div>
265
        </div>
266
      </div>
267
    </xsl:if>
268

  
269
    <xsl:if test="./gmd:function">
270
      <div class="control-group">
271
        <label class="control-label">function</label>
272
        <div class="controls">
273
          <div class="controls-well">
274
            <xsl:apply-templates select="./gmd:function" />
275
          </div>
276
        </div>
277
      </div>
278
    </xsl:if>
279
  </xsl:template>
280

  
281
  
50 282
</xsl:stylesheet>

Also available in: Unified diff