Revision 2398 tmp/org.txm.oriflamms.rcp/res/oriflamms-project-w-id-2-tei-xml-qgraal_cm.xsl

oriflamms-project-w-id-2-tei-xml-qgraal_cm.xsl (revision 2398)
1 1
<!-- The Identity Transformation -->
2
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
  xmlns:tei="http://www.tei-c.org/ns/1.0"
4
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
5
  
6
  <xsl:output method="xml"></xsl:output>
7
  
8
  <xsl:param name="valid-zones-file">qgraalTest-zones-words.xml</xsl:param>
9
  
10
  <xsl:variable name="valid-zones-element" as="element()">
11
    <xsl:copy-of select="document($valid-zones-file)//tei:facsimile"></xsl:copy-of>
12
  </xsl:variable>
13
  
14
  
15
  <!-- Whenever you match any node or any attribute -->
16
  <xsl:template match="node()|@*">
17
    <!-- Copy the current node -->
18
    <xsl:copy>
19
      <!-- Including any attributes it has and any child nodes -->
20
      <xsl:apply-templates select="@*|node()"/>
21
    </xsl:copy>
22
  </xsl:template>
23
  
24
  <!--<xsl:template match="//tei:facsimile">
25
    <xsl:copy>
26
      <xsl:copy-of select="$valid-zones-file"></xsl:copy-of>
27
    </xsl:copy>
28
  </xsl:template>
29
-->  
30
  <xsl:template match="//tei:zone[@type='word']">
31
    
32
    <xsl:variable name="myId"><xsl:value-of select="substring-after(@xml:id,'zone-')"/></xsl:variable>
33
    
34
    <xsl:variable name="myIdWp">
35
      <xsl:if test="matches($myId,'wp')">
36
        <xsl:value-of select="replace($myId,'wp_qgraal_cmTest_(.+)_[12]$','$1')"/>
37
      </xsl:if>
38
    </xsl:variable>
39
    
40
    <xsl:copy>
41
      <xsl:apply-templates select="@*"/>
42
      <xsl:choose>
43
        <xsl:when test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myId]">
44
          <xsl:variable name="matching-zone" as="element()">
45
            <xsl:copy-of select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myId]"/>
46
          </xsl:variable>
47
          <xsl:attribute name="ulx"><xsl:value-of select="$matching-zone/@ulx"/></xsl:attribute>
48
          <xsl:attribute name="uly"><xsl:value-of select="$matching-zone/@uly"/></xsl:attribute>
49
          <xsl:attribute name="lrx"><xsl:value-of select="$matching-zone/@lrx"/></xsl:attribute>
50
          <xsl:attribute name="lry"><xsl:value-of select="$matching-zone/@lry"/></xsl:attribute>
51
        </xsl:when>
52
        <xsl:when test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp and matches($myId,'_1$')]">
53
          <xsl:variable name="matching-zone" as="element()">
54
            <dummy><xsl:copy-of select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp]"/></dummy>
55
          </xsl:variable>
56
          <xsl:attribute name="ulx"><xsl:value-of select="$matching-zone/tei:zone[1]/@ulx"/></xsl:attribute>
57
          <xsl:attribute name="uly"><xsl:value-of select="$matching-zone/tei:zone[1]/@uly"/></xsl:attribute>
58
          <xsl:attribute name="lrx"><xsl:value-of select="$matching-zone/tei:zone[1]/@lrx"/></xsl:attribute>
59
          <xsl:attribute name="lry"><xsl:value-of select="$matching-zone/tei:zone[1]/@lry"/></xsl:attribute>
60
        </xsl:when>
61
        <xsl:when test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp and matches($myId,'_2$')]">
62
          <xsl:variable name="matching-zone" as="element()">
63
            <dummy><xsl:copy-of select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp]"/></dummy>
64
          </xsl:variable>
65
          <xsl:attribute name="ulx"><xsl:value-of select="$matching-zone/tei:zone[2]/@ulx"/></xsl:attribute>
66
          <xsl:attribute name="uly"><xsl:value-of select="$matching-zone/tei:zone[2]/@uly"/></xsl:attribute>
67
          <xsl:attribute name="lrx"><xsl:value-of select="$matching-zone/tei:zone[2]/@lrx"/></xsl:attribute>
68
          <xsl:attribute name="lry"><xsl:value-of select="$matching-zone/tei:zone[2]/@lry"/></xsl:attribute>
69
        </xsl:when>
70
        <xsl:otherwise><xsl:comment>No matching validated zone found!</xsl:comment></xsl:otherwise>        
71
      </xsl:choose>
72
      <xsl:apply-templates/>
73
    </xsl:copy>   
74
    
75
    
76
  </xsl:template>
2
<xsl:stylesheet version="2.0"
3
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4
	xmlns:tei="http://www.tei-c.org/ns/1.0"
5
	xmlns:xs="http://www.w3.org/2001/XMLSchema">
6

  
7
	<xsl:output method="xml"></xsl:output>
8

  
9
	<xsl:param name="valid-zones-file">
10
		qgraalTest-zones-words.xml
11
	</xsl:param>
12

  
13
	<xsl:variable name="valid-zones-element" as="element()">
14
		<xsl:copy-of
15
			select="document($valid-zones-file)//tei:facsimile"></xsl:copy-of>
16
	</xsl:variable>
17

  
18

  
19
	<!-- Whenever you match any node or any attribute -->
20
	<xsl:template match="node()|@*">
21
		<!-- Copy the current node -->
22
		<xsl:copy>
23
			<!-- Including any attributes it has and any child nodes -->
24
			<xsl:apply-templates select="@*|node()" />
25
		</xsl:copy>
26
	</xsl:template>
27

  
28
	<!--<xsl:template match="//tei:facsimile"> <xsl:copy> <xsl:copy-of select="$valid-zones-file"></xsl:copy-of> 
29
		</xsl:copy> </xsl:template> -->
30
	<xsl:template match="//tei:zone[@type='word']">
31

  
32
		<xsl:variable name="myId">
33
			<xsl:value-of select="substring-after(@xml:id,'zone-')" />
34
		</xsl:variable>
35

  
36
		<xsl:variable name="myIdWp">
37
			<xsl:if test="matches($myId,'wp')">
38
				<xsl:value-of
39
					select="replace($myId,'wp_qgraal_cmTest_(.+)_[12]$','$1')" />
40
			</xsl:if>
41
		</xsl:variable>
42

  
43
		<xsl:copy>
44
			<xsl:apply-templates select="@*" />
45
			<xsl:choose>
46
				<xsl:when
47
					test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myId]">
48
					<xsl:variable name="matching-zone" as="element()">
49
						<xsl:copy-of
50
							select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myId]" />
51
					</xsl:variable>
52
					<xsl:attribute name="ulx"><xsl:value-of
53
						select="$matching-zone/@ulx" /></xsl:attribute>
54
					<xsl:attribute name="uly"><xsl:value-of
55
						select="$matching-zone/@uly" /></xsl:attribute>
56
					<xsl:attribute name="lrx"><xsl:value-of
57
						select="$matching-zone/@lrx" /></xsl:attribute>
58
					<xsl:attribute name="lry"><xsl:value-of
59
						select="$matching-zone/@lry" /></xsl:attribute>
60
				</xsl:when>
61
				<xsl:when
62
					test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp and matches($myId,'_1$')]">
63
					<xsl:variable name="matching-zone" as="element()">
64
						<dummy>
65
							<xsl:copy-of
66
								select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp]" />
67
						</dummy>
68
					</xsl:variable>
69
					<xsl:attribute name="ulx"><xsl:value-of
70
						select="$matching-zone/tei:zone[1]/@ulx" /></xsl:attribute>
71
					<xsl:attribute name="uly"><xsl:value-of
72
						select="$matching-zone/tei:zone[1]/@uly" /></xsl:attribute>
73
					<xsl:attribute name="lrx"><xsl:value-of
74
						select="$matching-zone/tei:zone[1]/@lrx" /></xsl:attribute>
75
					<xsl:attribute name="lry"><xsl:value-of
76
						select="$matching-zone/tei:zone[1]/@lry" /></xsl:attribute>
77
				</xsl:when>
78
				<xsl:when
79
					test="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp and matches($myId,'_2$')]">
80
					<xsl:variable name="matching-zone" as="element()">
81
						<dummy>
82
							<xsl:copy-of
83
								select="$valid-zones-element//tei:zone[@type='word'][substring-after(@corresp,'#')=$myIdWp]" />
84
						</dummy>
85
					</xsl:variable>
86
					<xsl:attribute name="ulx"><xsl:value-of
87
						select="$matching-zone/tei:zone[2]/@ulx" /></xsl:attribute>
88
					<xsl:attribute name="uly"><xsl:value-of
89
						select="$matching-zone/tei:zone[2]/@uly" /></xsl:attribute>
90
					<xsl:attribute name="lrx"><xsl:value-of
91
						select="$matching-zone/tei:zone[2]/@lrx" /></xsl:attribute>
92
					<xsl:attribute name="lry"><xsl:value-of
93
						select="$matching-zone/tei:zone[2]/@lry" /></xsl:attribute>
94
				</xsl:when>
95
				<xsl:otherwise>
96
					<xsl:comment>
97
						No matching validated zone found!
98
					</xsl:comment>
99
				</xsl:otherwise>
100
			</xsl:choose>
101
			<xsl:apply-templates />
102
		</xsl:copy>
103

  
104

  
105
	</xsl:template>
77 106
</xsl:stylesheet>

Also available in: Unified diff