<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
    xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
    xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
    xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
    xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
    xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
    exclude-result-prefixes="office style text table form draw">
    <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

    <xsl:param name="xpath-forms-listbox"
        select="/office:document-content/office:body/office:text/office:forms/form:form/form:listbox"/>
    <xsl:param name="xpath-forms-file"
        select="/office:document-content/office:body/office:text/office:forms/form:form/form:file"/>
    <xsl:param name="xpath_table"
        select="/office:document-content/office:body/office:text/table:table"/>
    <xsl:param name="xpath_forms-text"
        select="/office:document-content/office:body/office:text/office:forms/form:form/form:formatted-text"/>

    <xsl:template match="/">

        <TEI> xmlns="http://www.tei-c.org/ns/1.0"> <xsl:apply-templates
                select="office:document-content/office:body/office:text"/>
        </TEI>
    </xsl:template>

    <xsl:template match="office:document-content/office:body/office:text">

        <teiHeader>
            <fileDesc>
                <titleStmt>
                    <title>
                        <xsl:value-of
                            select="table:table[@table:style-name='title']/table:table-row/table:table-cell/text:p"
                        />
                    </title>
                </titleStmt>

                <publicationStmt>
                    <publisher>
                        <xsl:value-of
                            select="table:table[@table:style-name='publicationStmt']/table:table-row[1]/table:table-cell[2]/text:p"/>

                    </publisher>
                    <date>
                        <xsl:value-of
                            select="table:table[@table:style-name='publicationStmt']/table:table-row[2]/table:table-cell[2]/text:p"
                        />
                    </date>
                </publicationStmt>

                <sourceDesc>

                    <msDesc>

                        <msIdentifier>
                            <settlement>
                                <xsl:value-of
                                    select="table:table[@table:style-name='msIdentifier']/table:table-row[4]/table:table-cell[2]/text:p"
                                />
                            </settlement>
                            <institution>
                                <xsl:value-of
                                    select="table:table[@table:style-name='msIdentifier']/table:table-row[1]/table:table-cell[2]/text:p"
                                />
                            </institution>
                            <repository>
                                <xsl:value-of
                                    select="table:table[@table:style-name='msIdentifier']/table:table-row[2]/table:table-cell[2]/text:p"
                                />
                            </repository>
                            <idno>
                                <xsl:value-of
                                    select="table:table[@table:style-name='msIdentifier']/table:table-row[3]/table:table-cell[2]/text:p"
                                />
                            </idno>
                        </msIdentifier>


                        <head>
                            <listPerson>
                                <xsl:for-each
                                    select="table:table[@table:name='listPerson']/table:table-row">

                                    <xsl:call-template name="controlfinder_listPerson">
                                        <xsl:with-param name="control-id"
                                            select="table:table-cell[1]/text:p/draw:control/@draw:control"/>
                                        <xsl:with-param name="pos" select="position()"/>
                                    </xsl:call-template>
                                </xsl:for-each>

                            </listPerson>


                            <listBibl>
                                <xsl:for-each
                                    select="table:table[@table:name='listBibl']/table:table-row">

                                    <xsl:call-template name="controlfinder_listBibl">
                                        <xsl:with-param name="control-id"
                                            select="table:table-cell[1]/text:p/draw:control/@draw:control"/>
                                        <xsl:with-param name="pos" select="position()"/>
                                    </xsl:call-template>
                                </xsl:for-each>

                            </listBibl>
                        </head>




                        <physDesc>
                            <objectDesc>
                                <xsl:for-each
                                    select="table:table[@table:name='objectDesc']/table:table-row[1]">

                                    <xsl:call-template name="controlfinder_objectDesc">
                                        <xsl:with-param name="control-id"
                                            select="table:table-cell[2]/text:p/draw:control/@draw:control"/>

                                    </xsl:call-template>

                                </xsl:for-each>

                                <supportDesc>
                                    <xsl:for-each
                                        select="table:table[@table:name='objectDesc']/table:table-row[3]">

                                        <xsl:call-template name="controlfinder_supportDesc">
                                            <xsl:with-param name="control-id"
                                                select="table:table-cell[2]/text:p/draw:control/@draw:control"
                                            />
                                        </xsl:call-template>
                                    </xsl:for-each>

                                    <extend>
                                        <note>
                                            <xsl:for-each
                                                select="table:table[@table:name='objectDesc']/table:table-row[2]">

                                                <xsl:call-template name="controlfinder_note">
                                                  <xsl:with-param name="control-id"
                                                  select="table:table-cell[2]/text:p/draw:control/@draw:control"
                                                  />
                                                </xsl:call-template>
                                            </xsl:for-each>
                                        </note>
                                        <dimensions>
                                            <height unit="cm">
                                                <xsl:for-each
                                                  select="table:table[@table:name='objectDesc']/table:table-row[4]">
                                                  <xsl:call-template name="controlfinder_dimensions">
                                                  <xsl:with-param name="control-id"
                                                  select="table:table-cell[2]/text:p/draw:control/@draw:control"
                                                  />
                                                  </xsl:call-template>
                                                </xsl:for-each>
                                            </height>
                                            <width unit="cm">
                                                <xsl:for-each
                                                  select="table:table[@table:name='objectDesc']/table:table-row[5]">
                                                  <xsl:call-template name="controlfinder_dimensions">
                                                  <xsl:with-param name="control-id"
                                                  select="table:table-cell[2]/text:p/draw:control/@draw:control"
                                                  />
                                                  </xsl:call-template>
                                                </xsl:for-each>
                                            </width>
                                        </dimensions>
                                    </extend>
                                    <condition>
                                        <xsl:if
                                            test="table:table[@table:name='objectDesc']/table:table-row[6]/table:table-cell[2]/text:p/text()">
                                            <p>
                                                <xsl:value-of
                                                  select="table:table[@table:name='objectDesc']/table:table-row[6]/table:table-cell[2]/text:p/text()"
                                                />
                                            </p>
                                        </xsl:if>
                                    </condition>
                                </supportDesc>

                            </objectDesc>

                            <sealDesc>
                                <xsl:apply-templates select="table:table[@table:name='sealDesc']"
                                    mode="sealDesc"/>
                            </sealDesc>


                        </physDesc>

                        <history>
                            <origin>
                                <xsl:apply-templates
                                    select="table:table[@table:name='history_origin']/table:table-row[1]/table:table-cell"
                                    mode="origin"/>
                            </origin>
                            <xsl:for-each
                                select="table:table[@table:name='history_provenance']/table:table-row">
                                <provenance>
                                    <xsl:apply-templates select="table:table-cell" mode="provenance"
                                    />
                                </provenance>
                            </xsl:for-each>
                            <acquisition>
                                <xsl:apply-templates
                                    select="table:table[@table:name='history_acquisition']/table:table-row[1]/table:table-cell"
                                    mode="acquisition"/>
                            </acquisition>
                        </history>
                    </msDesc>

                </sourceDesc>
            </fileDesc>
        </teiHeader>

        <text>
            <front>
                <div type="facsimiles">
                    <list>
                        <xsl:apply-templates select="table:table[@table:name='facsimile']"
                            mode="facsimile"/>
                    </list>
                </div>
                <xsl:apply-templates select="table:table[@table:name='regest']" mode="regest"/>
            </front>
        
<body>
    <xsl:attribute name="xml:lang">
    <xsl:call-template name="attribute-converter_lang">
       <xsl:with-param name="label"
           select="$xpath-forms-listbox[@form:name='text_lang']/form:option[@form:current-selected]/@form:label"/>
    </xsl:call-template>
    </xsl:attribute>
    
  <xsl:apply-templates select="table:table[@table:name='text']" mode="text"/>
</body>


<!--
            <body xml:lang="la">

                <div type="protocol">
                    <div type="invocatio">
                        <p>In nomine patris et </p>
                    </div>
                    <div type="intitulatio">
                        <p>Idcirco nos Peregrinus <lb/>dei gratia sancte ... </p>
                    </div>
                    <div type="arenga">
                        <p>Quoniam universis axime ecclesiarum prelatis in ... </p>
                    </div>
                </div>
                <div type="context">
                    <div type="publicatio">
                        <p>notum esse volumus omnibus Christum ... </p>
                    </div>
                    <div type="narratio">
                        <p>qualiter Dyebaldus nobilis quidam de Chagere ... </p>
                    </div>
                    <div type="dispositio">
                        <p>allodium suum Obbemburch sicut et ipsi ... </p>
                    </div>
                    <div type="sanctio">
                        <p>Preterea interdicimus ne aliquis eiusdem ecclesie ... </p>
                    </div>
                </div>
                <div type="escatocol">
                    <div type="subscriptiones">
                        <p>Huius igitur donationis testes sunt ... </p>
                    </div>
                    <div type="datatio">
                        <p>Actum est hoc Aquilegie .. </p>
                    </div>
                </div>
            </body>
-->
        </text>

    </xsl:template>

    <xsl:template match="table:table[@table:name='text']" mode="text">
        <xsl:apply-templates select="*" mode="text"></xsl:apply-templates>
    </xsl:template>



<!--Language of charter-text-->
    <xsl:template name="language_text">
        <xsl:param name="label" />
    </xsl:template>

    <!-- Regest -->
    <xsl:template match="table:table[@table:name='regest']" mode="regest">
        <xsl:apply-templates select="table:table-row" mode="regest"/>
    </xsl:template>

    <xsl:template match="table:table-row" mode="regest">
        <xsl:param name="control-id1" select="table:table-cell[1]/text:p/draw:control/@draw:control"/>
        <xsl:choose>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id1]/form:option[@form:current-selected] = false()"/> 
                <xsl:when
                    test="$xpath-forms-listbox[@form:id=$control-id1]/form:option[@form:current-selected] = ' '"/> 
                <xsl:otherwise>
                <div type="regest">
                    <xsl:attribute name="xml:lang">
                        <xsl:call-template name="attribute-converter_lang">
                            <xsl:with-param name="label"
                                select="$xpath-forms-listbox[@form:id=$control-id1]/form:option[@form:current-selected]/@form:label"/>
                        </xsl:call-template>
                      </xsl:attribute>
                    <p>
                        <xsl:apply-templates select="."></xsl:apply-templates>
                    </p> 
                </div>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>



    <!--Facsimile-->
    <xsl:template match="table:table[@table:name='facsimile']" mode="facsimile">
        <xsl:apply-templates select="table:table-row" mode="facsimile"/>
    </xsl:template>

    <xsl:template match="table:table-row" mode="facsimile">
        <xsl:param name="control-id1" select="table:table-cell[1]/text:p/draw:control/@draw:control"/>

        <xsl:choose>
            <xsl:when test="$xpath-forms-file[@form:id=$control-id1]/@form:current-value = false()"/>
            <xsl:otherwise>
                <item>
                    <figure>
                        <graphic>
                            <xsl:attribute name="url">
                                <xsl:call-template name="url-converter_stage1">
                                    <xsl:with-param name="url"
                                        select="$xpath-forms-file[@form:id=$control-id1]/@form:current-value"
                                    />
                                </xsl:call-template>
                            </xsl:attribute>
                        </graphic>
                        <figDesc>
                            <xsl:value-of select="table:table-cell[2]/text:p"/>
                        </figDesc>

                    </figure>
                </item>
            </xsl:otherwise>
        </xsl:choose>

    </xsl:template>



    <!--History_Origin-->
    <xsl:template
        match="table:table[@table:name='history_origin']/table:table-row[1]/table:table-cell"
        mode="origin">
        <p>
            <xsl:apply-templates select="*" mode="origin"/>
        </p>
    </xsl:template>

    <!--History_Provenance-->
    <xsl:template match="table:table-cell" mode="provenance">
        <p>
            <xsl:apply-templates select="."/>
        </p>
    </xsl:template>


    <!--History_Acquisation-->
    <xsl:template
        match="table:table[@table:name='history_acquisition']/table:table-row[1]/table:table-cell"
        mode="acquisition">
        <p>
            <xsl:apply-templates select="."/>
        </p>
    </xsl:template>

    <!--SealDescription-->
    <xsl:template match="table:table[@table:name='sealDesc']" mode="sealDesc">
        <xsl:apply-templates select="table:table-row" mode="sealDesc"/>
    </xsl:template>

    <xsl:template match="table:table-row" mode="sealDesc">
        <xsl:param name="control-id1" select="table:table-cell[1]/text:p/draw:control/@draw:control"/>
        <xsl:param name="control-id2" select="table:table-cell[2]/text:p/draw:control/@draw:control"/>
        <xsl:param name="control-id3" select="table:table-cell[3]/text:p/draw:control/@draw:control"/>
        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id1]/form:option/@form:current-selected)"/>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id1]/form:option[@form:current-selected]/@form:label =' '"/>
            <xsl:otherwise>
                <seal>
                    <xsl:attribute name="type">
                        <xsl:call-template name="attribute-converter">
                            <xsl:with-param name="label"
                                select="$xpath-forms-listbox[@form:id=$control-id1]/form:option[@form:current-selected]/@form:label"
                            />
                        </xsl:call-template>
                    </xsl:attribute>
                    <xsl:attribute name="material">

                        <xsl:value-of
                            select="$xpath-forms-listbox[@form:id=$control-id2]/form:option[@form:current-selected]/@form:label"/>

                    </xsl:attribute>
                    <deconote>
                        <xsl:value-of
                            select="$xpath-forms-listbox[@form:id=$control-id3]/form:option[@form:current-selected]/@form:label"
                        />
                    </deconote>
                    <p>
                        <xsl:apply-templates select="table:table-cell[4]/text:p" mode="sealDesc"/>
                    </p>
                </seal>
            </xsl:otherwise>
        </xsl:choose>

    </xsl:template>

    <xsl:template match="table:table-cell/text:p" mode="sealDesc">
        <xsl:apply-templates/>
    </xsl:template>







    <xsl:template name="controlfinder_listPerson">
        <xsl:param name="control-id"/>
        <xsl:param name="pos"/>

        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)"/>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '"/>
            <xsl:otherwise>
                <person>
                    <xsl:attribute name="role">
                        <xsl:call-template name="attribute-converter">
                            <xsl:with-param name="label"
                                select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"
                            />
                        </xsl:call-template>
                    </xsl:attribute>
                    <xsl:call-template name="listPerson">
                        <xsl:with-param name="control-id" select="$control-id"/>
                        <xsl:with-param name="pos" select="$pos"/>
                    </xsl:call-template>

                </person>
            </xsl:otherwise>
        </xsl:choose>

    </xsl:template>



    <xsl:template name="listPerson">
        <xsl:param name="control-id"/>
        <xsl:param name="pos"/>

        <persName>
            <xsl:choose>
                <xsl:when
                    test="starts-with($xpath_table[@table:name='listPerson']/table:table-row[$pos]/table:table-cell[2]/text:p/text(),'#')">
                    <xsl:attribute name="ref">
                        <xsl:value-of
                            select="substring-before(substring-after($xpath_table[@table:name='listPerson']/table:table-row[$pos]/table:table-cell[2]/text:p/text(),'#'),'#')"
                        />
                    </xsl:attribute>
                    <xsl:value-of
                        select="substring-after(substring-after($xpath_table[@table:name='listPerson']/table:table-row[$pos]/table:table-cell[2]/text:p/text(),'#'),'#')"
                    />
                </xsl:when>
                <xsl:when
                    test="not(starts-with($xpath_table[@table:name='listPerson']/table:table-row[$pos]/table:table-cell[2]/text:p/text(),'#'))">
                    <xsl:attribute name="ref"/>
                    <xsl:value-of
                        select="$xpath_table[@table:name='listPerson']/table:table-row[$pos]/table:table-cell[2]/text:p"
                    />
                </xsl:when>
            </xsl:choose>
        </persName>
    </xsl:template>


    <xsl:template name="controlfinder_listBibl">
        <xsl:param name="control-id"/>
        <xsl:param name="pos"/>
        <!--   <xsl:param name="xpath-forms-listbox"
            select="/office:document-content/office:body/office:text/office:forms/form:form/form:listbox"/>
       -->
        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)"/>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '"/>
            <xsl:otherwise>
                <bibl>
                    <xsl:attribute name="type">
                        <xsl:value-of
                            select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"
                        />
                    </xsl:attribute>
                    <xsl:call-template name="bibl">
                        <xsl:with-param name="control-id" select="$control-id"/>
                        <xsl:with-param name="pos" select="$pos"/>
                    </xsl:call-template>

                </bibl>
            </xsl:otherwise>
        </xsl:choose>

    </xsl:template>


    <xsl:template name="bibl">
        <xsl:param name="control-id"/>
        <xsl:param name="pos"/>
        <author>
            <xsl:value-of
                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[2]/text:p"
            />
        </author>
        <title>
            <xsl:value-of
                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[3]/text:p"
            />
        </title>
        <publischer>
            <xsl:value-of
                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[4]/text:p"
            />
        </publischer>
        <date>
            <xsl:value-of
                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[5]/text:p"
            />
        </date>
        <biblScope>
            <xsl:choose>
                <xsl:when
                    test="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p/text()">
                    <xsl:choose>
                        <xsl:when
                            test="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p/text()">
                            <xsl:attribute name="from">
                                <xsl:value-of
                                    select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"
                                />
                            </xsl:attribute>
                            <xsl:attribute name="to">
                                <xsl:value-of
                                    select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p"
                                />
                            </xsl:attribute>
                            <xsl:text>S. </xsl:text>
                            <xsl:value-of
                                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"/>
                            <xsl:text> - </xsl:text>
                            <xsl:value-of
                                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p"
                            />
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="from">
                                <xsl:value-of
                                    select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"
                                />
                            </xsl:attribute>
                            <xsl:text>S. </xsl:text>
                            <xsl:value-of
                                select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"
                            />
                        </xsl:otherwise>
                    </xsl:choose>

                </xsl:when>

            </xsl:choose>


            <!--  
            <xsl:if
                test="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p/text()">
                <xsl:attribute name="from">
                    <xsl:value-of
                        select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"
                    />
                </xsl:attribute>
                <xsl:text>S. </xsl:text>
                <xsl:value-of
                    select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[6]/text:p"
                />
            </xsl:if>

            <xsl:if
                test="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p/text()">
                <xsl:attribute name="to">
                    <xsl:value-of
                        select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p"
                    />
                </xsl:attribute>
                <xsl:text> - </xsl:text>
                <xsl:value-of
                    select="$xpath_table[@table:name='listBibl']/table:table-row[$pos]/table:table-cell[7]/text:p"
                />
            </xsl:if>
-->
        </biblScope>
    </xsl:template>

    <xsl:template name="controlfinder_objectDesc">
        <xsl:param name="control-id"/>
        <xsl:choose>

            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <xsl:attribute name="form"/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <xsl:attribute name="form"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:attribute name="form">
                    <xsl:call-template name="attribute-converter">
                        <xsl:with-param name="label">
                            <xsl:value-of
                                select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"
                            />
                        </xsl:with-param>
                    </xsl:call-template>
                </xsl:attribute>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template name="controlfinder_supportDesc">
        <xsl:param name="control-id"/>
        <xsl:choose>

            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <xsl:attribute name="material"/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <xsl:attribute name="material"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:attribute name="material">

                    <xsl:value-of
                        select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"
                    />
                </xsl:attribute>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template name="controlfinder_note">
        <xsl:param name="control-id"/>
        <xsl:choose>

            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <xsl:attribute name="type"/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <xsl:attribute name="type"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:attribute name="type">
                    <xsl:call-template name="attribute-converter">
                        <xsl:with-param name="label">
                            <xsl:value-of
                                select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"
                            />
                        </xsl:with-param>
                    </xsl:call-template>
                </xsl:attribute>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="controlfinder_dimensions">
        <xsl:param name="control-id"/>
        <xsl:value-of select="$xpath_forms-text[@form:id=$control-id]/@form:current-value"/>
    </xsl:template>

    <!-- Siegelbeschreibung 
    <xsl:template name="controlfinder_sealDesc_type">
        <xsl:param name="control-id"/>
        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <xsl:attribute name="type"/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <xsl:attribute name="type"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:attribute name="type">
                    <xsl:call-template name="attribute-converter">
                        <xsl:with-param name="label">
                            <xsl:value-of
                                select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"/>
                        </xsl:with-param>
                    </xsl:call-template>
                </xsl:attribute>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template name="controlfinder_sealDesc_material">
        <xsl:param name="control-id"/>
        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <xsl:attribute name="subtype"/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <xsl:attribute name="subtype"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:attribute name="subtype">
                    <xsl:value-of
                        select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"/>
                </xsl:attribute>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template name="controlfinder_sealDesc_deconote">
        <xsl:param name="control-id"/>
        <xsl:choose>
            <xsl:when
                test="not($xpath-forms-listbox[@form:id=$control-id]/form:option/@form:current-selected)">
                <deconote/>
            </xsl:when>
            <xsl:when
                test="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label =' '">
                <deconote/>
            </xsl:when>
            <xsl:otherwise>
                <deconote>
                    <xsl:value-of
                        select="$xpath-forms-listbox[@form:id=$control-id]/form:option[@form:current-selected]/@form:label"/>
                </deconote>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    -->
    <xsl:template name="attribute-converter">
        <!-- This template switches 'human-friendly' attribut-names to TEI-conform attribut names -->
        <xsl:param name="label"/>


        <xsl:choose>
            <xsl:when test="$label = 'Austeller'">
                <xsl:text>issuer</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Empfänger'">
                <xsl:text>recipient</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Schreiber'">
                <xsl:text>writer</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Zeuge'">
                <xsl:text>witness</xsl:text>
            </xsl:when>

            <!-- Siegeltyp -->
            <xsl:when test="$label = 'anhängend/pend.'">
                <xsl:text>pend</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'aufgedrückt/imp.'">
                <xsl:text>imp</xsl:text>
            </xsl:when>

            <!-- Status der Überlieferung -->
            <xsl:when test="$label = 'Fälschung'">
                <xsl:text>Faelsch</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'verdächtige Ausfertigung'">
                <xsl:text>verd</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'verunechtete Ausfertigung'">
                <xsl:text>verun</xsl:text>
            </xsl:when>

            <!-- Art der Überlieferung -->
            <xsl:when test="$label = 'Abschrift'">
                <xsl:text>Abschr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ausfertigung'">
                <xsl:text>Ausf</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Druck'">
                <xsl:text>Dr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Entwurf'">
                <xsl:text>Entw</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Insert'">
                <xsl:text>Ins</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kopialbuch'">
                <xsl:text>Kop</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Mikrofilm'">
                <xsl:text>MF</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Original'">
                <xsl:text>Orig</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Photographie'">
                <xsl:text>Ph</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Register'">
                <xsl:text>R</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Regest'">
                <xsl:text>Reg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Reproduktion'">
                <xsl:text>Rep</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Transsumpt'">
                <xsl:text>Trans</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Vidimus'">
                <xsl:text>Vid</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Xerox-Kopie'">
                <xsl:text>XK</xsl:text>
            </xsl:when>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="attribute-converter_lang">
        <!-- This template switches 'human-friendly' language-names to languages coded with ISO639-1 -->
        <xsl:param name="label"/>
        <xsl:choose>
            <xsl:when test="$label = 'Deutsch'">
                <xsl:text>de</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Lateinisch'">
                <xsl:text>la</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Slowenisch'">
                <xsl:text>sl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Italienisch'">
                <xsl:text>it</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Englisch'">
                <xsl:text>en</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Abchasisch'">
                <xsl:text>ab</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Afar'">
                <xsl:text>aa</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Afrikaans'">
                <xsl:text>af</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Akan'">
                <xsl:text>ak</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Albanisch'">
                <xsl:text>sq</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Altkirchenslawisch'">
                <xsl:text>cu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Amharisch'">
                <xsl:text>am</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Anishinabe'">
                <xsl:text>oj</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Arabisch'">
                <xsl:text>ar</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Aragonesisch'">
                <xsl:text>an</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Aramäisch'">
                <xsl:text>arc</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Armenisch'">
                <xsl:text>hy</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Assamesisch/Assami'">
                <xsl:text>as</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Aserbaidschanisch'">
                <xsl:text>az</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Avestisch'">
                <xsl:text>ae</xsl:text>
            </xsl:when>
            <xsl:when test="$label = '(Neu-)Awarisch'">
                <xsl:text>av</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Aymara'">
                <xsl:text>ay</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bambara'">
                <xsl:text>bm</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Banyumasan'">
                <xsl:text>by</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Baschkirisch'">
                <xsl:text>ba</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Baskisch'">
                <xsl:text>eu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bengalisch'">
                <xsl:text>bn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bihari'">
                <xsl:text>bh</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bislama'">
                <xsl:text>bi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bosnisch'">
                <xsl:text>bs</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bretonisch'">
                <xsl:text>br</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bulgarisch'">
                <xsl:text>bg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Birmanisch'">
                <xsl:text>my</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Chamorro'">
                <xsl:text>ch</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Chichewa'">
                <xsl:text>ny</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Chinesisch'">
                <xsl:text>zh</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Cree'">
                <xsl:text>cr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Dänisch'">
                <xsl:text>da</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Dhivehi'">
                <xsl:text>dv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Dzongkha'">
                <xsl:text>dz</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Esperanto'">
                <xsl:text>eo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Estnisch'">
                <xsl:text>et</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ewe'">
                <xsl:text>ee</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Färöisch'">
                <xsl:text>fo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Fidschi'">
                <xsl:text>fj</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Finnisch'">
                <xsl:text>fi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Französisch'">
                <xsl:text>fr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Friesisch'">
                <xsl:text>fy</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Fula'">
                <xsl:text>ff</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Galicisch'">
                <xsl:text>gl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = '(Schottisch-)Gälisch'">
                <xsl:text>gd</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ganda'">
                <xsl:text>lg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Georgisch'">
                <xsl:text>ka</xsl:text>
            </xsl:when>
            <xsl:when test="$label = '(Neu-)Griechisch'">
                <xsl:text>el</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Guaraní'">
                <xsl:text>gn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Gujarati'">
                <xsl:text>gu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Haitianisch'">
                <xsl:text>ht</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Hausa'">
                <xsl:text>ha</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Hebräisch'">
                <xsl:text>he</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Herero'">
                <xsl:text>hz</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Hindi'">
                <xsl:text>hi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Hiri Motu'">
                <xsl:text>ho</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Indonesisch'">
                <xsl:text>id</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Interlingua'">
                <xsl:text>ia</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Interlingue'">
                <xsl:text>ie</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Inuktitut'">
                <xsl:text>iu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Inupiaq'">
                <xsl:text>ik</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Irisch'">
                <xsl:text>ga</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'isiXhosa'">
                <xsl:text>xh</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'isiZulu'">
                <xsl:text>zu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Isländisch'">
                <xsl:text>is</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Japanisch'">
                <xsl:text>ja</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Javanisch'">
                <xsl:text>jv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Jiddisch'">
                <xsl:text>yi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kalaallisut; Grönländisch'">
                <xsl:text>kl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kannada'">
                <xsl:text>kn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kanuri'">
                <xsl:text>kr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kasachisch'">
                <xsl:text>kk</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kaschmirisch'">
                <xsl:text>ks</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Katalanisch'">
                <xsl:text>ca</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Khmer'">
                <xsl:text>km</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kikuyu'">
                <xsl:text>ki</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kinyarwanda'">
                <xsl:text>rw</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kirgisisch'">
                <xsl:text>ky</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kirundi'">
                <xsl:text>rn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kongo, Kikongo'">
                <xsl:text>kg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Komi'">
                <xsl:text>kv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Koreanisch'">
                <xsl:text>ko</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kornisch'">
                <xsl:text>kw</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Korsisch'">
                <xsl:text>co</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kroatisch'">
                <xsl:text>hr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kuanyama'">
                <xsl:text>kj</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kurdisch'">
                <xsl:text>ku</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Laotisch'">
                <xsl:text>lo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Lettisch'">
                <xsl:text>lv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Limburgisch'">
                <xsl:text>li</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Lingala'">
                <xsl:text>ln</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Litauisch'">
                <xsl:text>lt</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Kiluba (Luba-Katanga)'">
                <xsl:text>lu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Luxemburgisch'">
                <xsl:text>lb</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Madagassisch'">
                <xsl:text>mg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Malaiisch'">
                <xsl:text>ms</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Malayalam'">
                <xsl:text>ml</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Maltesisch'">
                <xsl:text>mt</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Manx'">
                <xsl:text>gv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Maori'">
                <xsl:text>mi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Marathi'">
                <xsl:text>mr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Marshallesisch'">
                <xsl:text>mh</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Mazedonisch'">
                <xsl:text>mk</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Mongolisch'">
                <xsl:text>mn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Nauruisch'">
                <xsl:text>na</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Navajo'">
                <xsl:text>nv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Nord-Ndebele'">
                <xsl:text>nd</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Süd-Ndebele'">
                <xsl:text>nr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ndonga'">
                <xsl:text>ng</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Nepalesisch'">
                <xsl:text>ne</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Niederländisch'">
                <xsl:text>nl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Norwegisch'">
                <xsl:text>no</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Bokmål'">
                <xsl:text>nb</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Nynorsk (Neunorwegisch)'">
                <xsl:text>nn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Oriya'">
                <xsl:text>or</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Oromo'">
                <xsl:text>om</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ossetisch'">
                <xsl:text>os</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Pali'">
                <xsl:text>pi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Paschtu'">
                <xsl:text>ps</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Persisch'">
                <xsl:text>fa</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Polnisch'">
                <xsl:text>pl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Portugiesisch'">
                <xsl:text>pt</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Okzitanisch'">
                <xsl:text>oc</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Pandschabi'">
                <xsl:text>pa</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Quechua'">
                <xsl:text>qu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Rätoromanisch'">
                <xsl:text>rm</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Rumänisch'">
                <xsl:text>ro</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Russisch'">
                <xsl:text>ru</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Samisch'">
                <xsl:text>se</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Samoanisch'">
                <xsl:text>sm</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sango'">
                <xsl:text>sg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sanskrit'">
                <xsl:text>sa</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sardisch'">
                <xsl:text>sc</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Schwedisch'">
                <xsl:text>sv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Serbisch'">
                <xsl:text>sr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sesotho'">
                <xsl:text>st</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Setswana'">
                <xsl:text>tn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Shona'">
                <xsl:text>sn</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sindhi'">
                <xsl:text>sd</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Singhalesisch'">
                <xsl:text>si</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Siswati'">
                <xsl:text>ss</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Slowakisch'">
                <xsl:text>sk</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Somali'">
                <xsl:text>so</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Spanisch'">
                <xsl:text>es</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Sundanesisch'">
                <xsl:text>su</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Swahili'">
                <xsl:text>sw</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tadschikisch'">
                <xsl:text>tg</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tagalog'">
                <xsl:text>tl</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tahitianisch'">
                <xsl:text>ty</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tamilisch'">
                <xsl:text>ta</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tatarisch'">
                <xsl:text>tt</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Telugu'">
                <xsl:text>te</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Thailändisch'">
                <xsl:text>th</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tibetisch'">
                <xsl:text>bo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tigrinya'">
                <xsl:text>ti</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tongaisch'">
                <xsl:text>to</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tschechisch'">
                <xsl:text>cs</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tschetschenisch'">
                <xsl:text>ce</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tschuwaschisch'">
                <xsl:text>cv</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Tsonga'">
                <xsl:text>ts</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Türkisch'">
                <xsl:text>tr</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Turkmenisch'">
                <xsl:text>tk</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Twi'">
                <xsl:text>tw</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Uigurisch'">
                <xsl:text>ug</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ukrainisch'">
                <xsl:text>uk</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Ungarisch'">
                <xsl:text>hu</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Urdu'">
                <xsl:text>ur</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Usbekisch'">
                <xsl:text>uz</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Venda'">
                <xsl:text>ve</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Vietnamesisch'">
                <xsl:text>vi</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Volapük'">
                <xsl:text>vo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Walisisch'">
                <xsl:text>cy</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Wallonisch'">
                <xsl:text>wa</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Weißrussisch'">
                <xsl:text>be</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Wolof'">
                <xsl:text>wo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Yi'">
                <xsl:text>ii</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Yoruba'">
                <xsl:text>yo</xsl:text>
            </xsl:when>
            <xsl:when test="$label = 'Zhuang'">
                <xsl:text>za</xsl:text>
            </xsl:when>
        </xsl:choose>
    </xsl:template>


    <!-- get the names and dates withing the and format them correctly -->

    <xsl:template match="text:span">
        <xsl:choose>
            <xsl:when test="@text:style-name='Name_5f_Organisation'">
                <name type="org">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>

            <xsl:when test="@text:style-name='Name_5f_Person'">
                <name type="org">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>

            <xsl:when test="@text:style-name='Name_5f_Ort'">
                <name type="org">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>
            <xsl:when test="@text:style-name='Zeilenumbruch'">
                <xsl:choose>
                    <xsl:when test="string(.) = '[LB]'">
                        <lb/>
                    </xsl:when>
                    <xsl:otherwise/>
                </xsl:choose>

            </xsl:when>
        </xsl:choose>
    </xsl:template>

    <!-- special treatment for elements in history/origin -->
    <xsl:template match="text:span" mode="origin">
        <xsl:choose>
            <xsl:when test="@text:style-name='Name_5f_Organisation'">
                <name type="org">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>

            <xsl:when test="@text:style-name='Name_5f_Person'">
                <name type="person">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>

            <xsl:when test="@text:style-name='Name_5f_Ort'">
                <origPlace>
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </origPlace>
            </xsl:when>
            <xsl:when test="@text:style-name='Zeilenumbruch'">
                <xsl:choose>
                    <xsl:when test="string(.) = '[LB]'">
                        <lb/>
                    </xsl:when>
                    <xsl:otherwise> </xsl:otherwise>
                </xsl:choose>

            </xsl:when>
        </xsl:choose>
    </xsl:template>

    <!-- special treatment for elements in text (original charter text) -->
    <xsl:template match="text:span" mode="text">
        <xsl:choose>
            <xsl:when test="@text:style-name='Name_5f_Organisation'">
                <name type="org">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>
            
            <xsl:when test="@text:style-name='Name_5f_Person'">
                <name type="person">
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </name>
            </xsl:when>
            
            <xsl:when test="@text:style-name='Name_5f_Ort'">
                <origPlace>
                    <xsl:choose>
                        <xsl:when test="starts-with(.,'#')">
                            <xsl:attribute name="ref">
                                <xsl:value-of select="substring-before(substring-after(.,'#'),'#')"
                                />
                            </xsl:attribute>
                            <xsl:value-of select="substring-after(substring-after(.,'#'),'#')"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:attribute name="ref"/>
                            <xsl:value-of select="."/>
                        </xsl:otherwise>
                    </xsl:choose>
                </origPlace>
            </xsl:when>
            <xsl:when test="@text:style-name='Zeilenumbruch'">
                <xsl:choose>
                    <xsl:when test="string(.) = '[LB]'">
                        <lb/>
                    </xsl:when>
                    <xsl:otherwise> </xsl:otherwise>
                </xsl:choose>
                
            </xsl:when>
        </xsl:choose>
    </xsl:template>




    <!--Here be Dragons // hic sunt dracones-->
    <!--The url-converter-templates grab the url from the facsimile-filechooser,
then stage1 checks if it's unix or windows path-style (directory-separator / =! \)
and then passes it on to stage2.
stage2 just takes the substring after the first occurence of the separator and
<!-\-<!-\-pipes it back to stage1.-\->-\->
that loop goes as long as directory-separators are in the url.
Why is there no reverse-string function in xslt? that would have been much easier an faster.-->
    <xsl:template name="url-converter_stage1">
        <xsl:param name="url"/>
        <!-- check for Windows or Unix/Mac path-styles -->
        <xsl:choose>
            <xsl:when test="contains($url,'\')">
                <xsl:call-template name="url-converter_stage2">
                    <xsl:with-param name="url" select="$url"/>
                    <xsl:with-param name="separator" select="'\'"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:when test="contains($url,'/')">
                <xsl:call-template name="url-converter_stage2">
                    <xsl:with-param name="url" select="$url"/>
                    <xsl:with-param name="separator" select="'/'"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <!-- just the filename? ok, pass it as value to the url-attribute -->
                <xsl:value-of select="$url"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="url-converter_stage2">
        <xsl:param name="url"/>
        <xsl:param name="separator"/>

        <xsl:call-template name="url-converter_stage1">
            <xsl:with-param name="url" select="substring-after($url,$separator)"/>
        </xsl:call-template>
    </xsl:template>


</xsl:stylesheet>
