<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tei-c.org/index.php?action=history&amp;feed=atom&amp;title=Remove-Default-Attributes.xslt</id>
	<title>Remove-Default-Attributes.xslt - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tei-c.org/index.php?action=history&amp;feed=atom&amp;title=Remove-Default-Attributes.xslt"/>
	<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;action=history"/>
	<updated>2026-10-07T16:00:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=4074&amp;oldid=prev</id>
		<title>Piotr Banski: Reverted edit of PasroNolia, changed back to last version by Piotr Banski</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=4074&amp;oldid=prev"/>
		<updated>2008-01-07T10:58:36Z</updated>

		<summary type="html">&lt;p&gt;Reverted edit of PasroNolia, changed back to last version by Piotr Banski&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Summary ==&lt;br /&gt;
This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.  &lt;br /&gt;
These are often provided by the DTD or schema, and can clutter up viewing of them.&lt;br /&gt;
&lt;br /&gt;
Add any comments to the &amp;#039;discussion&amp;#039; tab.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
While this may work on other documents it assumes a TEI Lite P4 XML document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
Same document, but with default attributes removed if they have the default values.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
&lt;br /&gt;
It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;br /&gt;
&lt;br /&gt;
== Stylesheet ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
  remove_default_attrs.xslt&lt;br /&gt;
&lt;br /&gt;
  This style-sheet reads in an XML file (presumably a TEI&lt;br /&gt;
  Lite P4 XML one) and writes out the same file with&lt;br /&gt;
  any attributes that are specified with the same value as&lt;br /&gt;
  the default value (as listed in the 2004-07-16 version of&lt;br /&gt;
  teixlite.dtd) removed.&lt;br /&gt;
&lt;br /&gt;
  I don&amp;#039;t claim for a moment that the method I&amp;#039;ve used here is the best in&lt;br /&gt;
  any sense of the word &amp;quot;best&amp;quot;, only that it was the one I happened to create&lt;br /&gt;
  using the flattened teixlite.dtd as a starting point.&lt;br /&gt;
  &lt;br /&gt;
  Written 2005-08-10 by Syd Bauman&lt;br /&gt;
  copyleft 2005 by Syd Bauman and the Text Encoding Initiative Consortium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot; xmlns:tei=&amp;quot;http://www.tei-c.org/ns/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:output indent=&amp;quot;yes&amp;quot; &lt;br /&gt;
              method=&amp;quot;xml&amp;quot;&lt;br /&gt;
              omit-xml-declaration=&amp;quot;no&amp;quot;&lt;br /&gt;
              cdata-section-elements=&amp;quot;eg&amp;quot;/&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Generic copy-everything template --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;*|@*|processing-instruction()|comment()&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:copy&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;*|@*|text()|processing-instruction()|comment()&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:copy&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;   &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- get rid of TEIform= attrs whose value match GI --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- idea from Sebastian Rahtz&amp;#039;s tei2tei.xsl --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;@TEIform&amp;quot;&amp;gt;        &amp;lt;!-- if we&amp;#039;re on a TEIform= --&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = name(..) )&amp;quot;&amp;gt;  &amp;lt;!-- if my value != name of the element I&amp;#039;m on --&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEIform&amp;quot;&amp;gt;     &amp;lt;!-- output myself --&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;                            &amp;lt;!-- thus, if my value == name of element I&amp;#039;m on, --&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;                        &amp;lt;!-- since we do nothing the entire attr is dropped --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Now match each possible default, and reporoduce it only if  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the value is not the default --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Each of these has precisely the same format, and thus it would --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- probably be a good idea to make a separate parameterized routine --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- instead. Someday. In the meantime, this is how they all work: --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- When we hit an element/attribute combination that has a default value --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- in the DTD, test to see if the value specified is the same as the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- default value in the DTD. If it is not, write out the attribute as --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- it was specified in the instance; if it is, do nothing, thus dropping --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the entire attribute from the output. Note that the names of elements, --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- attributes, and the attribute values are just hard-coded here in the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- style-sheet: no clever look-ups being performed here. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;gi/@TEI&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEI&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@anchored&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;anchored&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@cols&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;textClass/@default | bibl/@default | biblFull/@default | editorialDecl/@default | langUsage/@default | listBibl/@default | projectDesc/@default | samplingDecl/@default | sourceDesc/@default&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;NO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;default&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;q/@direct&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;direct&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;refsDecl/@doctype&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;TEI.2&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;doctype&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@from | xptr/@from&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;ROOT&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;from&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@org | div0/@org | div1/@org | div2/@org | div3/@org | div4/@org | div5/@org | div6/@org | div7/@org | div/@org&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;uniform&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;org&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;seg/@part | ab/@part | div0/@part | div1/@part | div2/@part | div3/@part | div4/@part | div5/@part | div6/@part | div7/@part | div/@part | l/@part | lg/@part | s/@part&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;N&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;part&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@place&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;place&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;editor/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;editor&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@role | row/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;data&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@rows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;rows&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@sample | div0/@sample | div1/@sample | div2/@sample | div3/@sample | div4/@sample | div5/@sample | div6/@sample | div7/@sample | div/@sample&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;complete&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;sample&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;del/@statuss&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unremarkable&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;availability/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unknown&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;new&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@targOrder | ptr/@targOrder | ref/@targOrder | xptr/@targOrder&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;U&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;targOrder&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@to | xptr/@to&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;DITTO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;to&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;titlePart/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;main&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;list/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;simple&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;text&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XSLT]]&lt;br /&gt;
[[Category:TEI:P4]]&lt;/div&gt;</summary>
		<author><name>Piotr Banski</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=3810&amp;oldid=prev</id>
		<title>Piotr Banski: + Category:TEI:P4</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=3810&amp;oldid=prev"/>
		<updated>2007-11-05T13:42:42Z</updated>

		<summary type="html">&lt;p&gt;+ &lt;a href=&quot;/index.php/Category:TEI:P4&quot; title=&quot;Category:TEI:P4&quot;&gt;Category:TEI:P4&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:42, 5 November 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l258&quot;&gt;Line 258:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 258:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XSLT]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:XSLT]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:TEI:P4]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piotr Banski</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2672&amp;oldid=prev</id>
		<title>Syd: Remove-Default-Attributes.xsl moved to Remove-Default-Attributes.xslt</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2672&amp;oldid=prev"/>
		<updated>2006-07-02T03:37:12Z</updated>

		<summary type="html">&lt;p&gt;Remove-Default-Attributes.xsl moved to Remove-Default-Attributes.xslt&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:37, 2 July 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Syd</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2547&amp;oldid=prev</id>
		<title>James at 12:34, 5 April 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2547&amp;oldid=prev"/>
		<updated>2006-04-05T12:34:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Summary ==&lt;br /&gt;
This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.  &lt;br /&gt;
These are often provided by the DTD or schema, and can clutter up viewing of them.&lt;br /&gt;
&lt;br /&gt;
Add any comments to the &amp;#039;discussion&amp;#039; tab.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
While this may work on other documents it assumes a TEI Lite P4 XML document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
Same document, but with default attributes removed if they have the default values.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
&lt;br /&gt;
It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;br /&gt;
&lt;br /&gt;
== Stylesheet ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
  remove_default_attrs.xslt&lt;br /&gt;
&lt;br /&gt;
  This style-sheet reads in an XML file (presumably a TEI&lt;br /&gt;
  Lite P4 XML one) and writes out the same file with&lt;br /&gt;
  any attributes that are specified with the same value as&lt;br /&gt;
  the default value (as listed in the 2004-07-16 version of&lt;br /&gt;
  teixlite.dtd) removed.&lt;br /&gt;
&lt;br /&gt;
  I don&amp;#039;t claim for a moment that the method I&amp;#039;ve used here is the best in&lt;br /&gt;
  any sense of the word &amp;quot;best&amp;quot;, only that it was the one I happened to create&lt;br /&gt;
  using the flattened teixlite.dtd as a starting point.&lt;br /&gt;
  &lt;br /&gt;
  Written 2005-08-10 by Syd Bauman&lt;br /&gt;
  copyleft 2005 by Syd Bauman and the Text Encoding Initiative Consortium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot; xmlns:tei=&amp;quot;http://www.tei-c.org/ns/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:output indent=&amp;quot;yes&amp;quot; &lt;br /&gt;
              method=&amp;quot;xml&amp;quot;&lt;br /&gt;
              omit-xml-declaration=&amp;quot;no&amp;quot;&lt;br /&gt;
              cdata-section-elements=&amp;quot;eg&amp;quot;/&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Generic copy-everything template --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;*|@*|processing-instruction()|comment()&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:copy&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;*|@*|text()|processing-instruction()|comment()&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:copy&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;   &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- get rid of TEIform= attrs whose value match GI --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- idea from Sebastian Rahtz&amp;#039;s tei2tei.xsl --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;@TEIform&amp;quot;&amp;gt;        &amp;lt;!-- if we&amp;#039;re on a TEIform= --&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = name(..) )&amp;quot;&amp;gt;  &amp;lt;!-- if my value != name of the element I&amp;#039;m on --&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEIform&amp;quot;&amp;gt;     &amp;lt;!-- output myself --&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;                            &amp;lt;!-- thus, if my value == name of element I&amp;#039;m on, --&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;                        &amp;lt;!-- since we do nothing the entire attr is dropped --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Now match each possible default, and reporoduce it only if  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the value is not the default --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Each of these has precisely the same format, and thus it would --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- probably be a good idea to make a separate parameterized routine --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- instead. Someday. In the meantime, this is how they all work: --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- When we hit an element/attribute combination that has a default value --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- in the DTD, test to see if the value specified is the same as the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- default value in the DTD. If it is not, write out the attribute as --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- it was specified in the instance; if it is, do nothing, thus dropping --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the entire attribute from the output. Note that the names of elements, --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- attributes, and the attribute values are just hard-coded here in the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- style-sheet: no clever look-ups being performed here. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;gi/@TEI&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEI&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@anchored&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;anchored&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@cols&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;textClass/@default | bibl/@default | biblFull/@default | editorialDecl/@default | langUsage/@default | listBibl/@default | projectDesc/@default | samplingDecl/@default | sourceDesc/@default&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;NO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;default&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;q/@direct&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;direct&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;refsDecl/@doctype&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;TEI.2&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;doctype&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@from | xptr/@from&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;ROOT&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;from&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@org | div0/@org | div1/@org | div2/@org | div3/@org | div4/@org | div5/@org | div6/@org | div7/@org | div/@org&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;uniform&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;org&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;seg/@part | ab/@part | div0/@part | div1/@part | div2/@part | div3/@part | div4/@part | div5/@part | div6/@part | div7/@part | div/@part | l/@part | lg/@part | s/@part&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;N&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;part&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@place&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;place&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;editor/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;editor&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@role | row/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;data&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@rows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;rows&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@sample | div0/@sample | div1/@sample | div2/@sample | div3/@sample | div4/@sample | div5/@sample | div6/@sample | div7/@sample | div/@sample&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;complete&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;sample&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;del/@statuss&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unremarkable&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;availability/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unknown&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;new&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@targOrder | ptr/@targOrder | ref/@targOrder | xptr/@targOrder&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;U&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;targOrder&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@to | xptr/@to&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;DITTO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;to&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;titlePart/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;main&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;list/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;simple&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;text&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XSLT]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2356&amp;oldid=prev</id>
		<title>James: Spam Removal</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=2356&amp;oldid=prev"/>
		<updated>2006-01-04T10:52:29Z</updated>

		<summary type="html">&lt;p&gt;Spam Removal&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Summary ==&lt;br /&gt;
This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.  &lt;br /&gt;
These are often provided by the DTD or schema, and can clutter up viewing of them.&lt;br /&gt;
&lt;br /&gt;
Add any comments to the &amp;#039;discussion&amp;#039; tab.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
While this may work on other documents it assumes a TEI Lite P4 XML document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
Same document, but with default attributes removed if they have the default values.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
&lt;br /&gt;
It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;br /&gt;
&lt;br /&gt;
== Stylesheet ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
  remove_default_attrs.xslt&lt;br /&gt;
&lt;br /&gt;
  This style-sheet reads in an XML file (presumably a TEI&lt;br /&gt;
  Lite P4 XML one) and writes out the same file with&lt;br /&gt;
  any attributes that are specified with the same value as&lt;br /&gt;
  the default value (as listed in the 2004-07-16 version of&lt;br /&gt;
  teixlite.dtd) removed.&lt;br /&gt;
&lt;br /&gt;
  I don&amp;#039;t claim for a moment that the method I&amp;#039;ve used here is the best in&lt;br /&gt;
  any sense of the word &amp;quot;best&amp;quot;, only that it was the one I happened to create&lt;br /&gt;
  using the flattened teixlite.dtd as a starting point.&lt;br /&gt;
  &lt;br /&gt;
  Written 2005-08-10 by Syd Bauman&lt;br /&gt;
  copyleft 2005 by Syd Bauman and the Text Encoding Initiative Consortium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot; xmlns:tei=&amp;quot;http://www.tei-c.org/ns/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:output indent=&amp;quot;yes&amp;quot; &lt;br /&gt;
              method=&amp;quot;xml&amp;quot;&lt;br /&gt;
              omit-xml-declaration=&amp;quot;no&amp;quot;&lt;br /&gt;
              cdata-section-elements=&amp;quot;eg&amp;quot;/&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Generic copy-everything template --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;*|@*|processing-instruction()|comment()&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:copy&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;*|@*|text()|processing-instruction()|comment()&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:copy&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;   &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- get rid of TEIform= attrs whose value match GI --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- idea from Sebastian Rahtz&amp;#039;s tei2tei.xsl --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;@TEIform&amp;quot;&amp;gt;        &amp;lt;!-- if we&amp;#039;re on a TEIform= --&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = name(..) )&amp;quot;&amp;gt;  &amp;lt;!-- if my value != name of the element I&amp;#039;m on --&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEIform&amp;quot;&amp;gt;     &amp;lt;!-- output myself --&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;                            &amp;lt;!-- thus, if my value == name of element I&amp;#039;m on, --&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;                        &amp;lt;!-- since we do nothing the entire attr is dropped --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Now match each possible default, and reporoduce it only if  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the value is not the default --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Each of these has precisely the same format, and thus it would --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- probably be a good idea to make a separate parameterized routine --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- instead. Someday. In the meantime, this is how they all work: --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- When we hit an element/attribute combination that has a default value --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- in the DTD, test to see if the value specified is the same as the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- default value in the DTD. If it is not, write out the attribute as --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- it was specified in the instance; if it is, do nothing, thus dropping --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the entire attribute from the output. Note that the names of elements, --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- attributes, and the attribute values are just hard-coded here in the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- style-sheet: no clever look-ups being performed here. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;gi/@TEI&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEI&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@anchored&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;anchored&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@cols&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;textClass/@default | bibl/@default | biblFull/@default | editorialDecl/@default | langUsage/@default | listBibl/@default | projectDesc/@default | samplingDecl/@default | sourceDesc/@default&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;NO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;default&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;q/@direct&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;direct&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;refsDecl/@doctype&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;TEI.2&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;doctype&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@from | xptr/@from&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;ROOT&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;from&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@org | div0/@org | div1/@org | div2/@org | div3/@org | div4/@org | div5/@org | div6/@org | div7/@org | div/@org&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;uniform&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;org&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;seg/@part | ab/@part | div0/@part | div1/@part | div2/@part | div3/@part | div4/@part | div5/@part | div6/@part | div7/@part | div/@part | l/@part | lg/@part | s/@part&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;N&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;part&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@place&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;place&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;editor/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;editor&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@role | row/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;data&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@rows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;rows&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@sample | div0/@sample | div1/@sample | div2/@sample | div3/@sample | div4/@sample | div5/@sample | div6/@sample | div7/@sample | div/@sample&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;complete&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;sample&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;del/@statuss&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unremarkable&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;availability/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unknown&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;new&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@targOrder | ptr/@targOrder | ref/@targOrder | xptr/@targOrder&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;U&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;targOrder&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@to | xptr/@to&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;DITTO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;to&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;titlePart/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;main&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;list/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;simple&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;text&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XSLT]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=1553&amp;oldid=prev</id>
		<title>James at 15:51, 5 September 2005</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=1553&amp;oldid=prev"/>
		<updated>2005-09-05T15:51:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:51, 5 September 2005&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Remove Default Attributes=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Summary ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Summary ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot;&gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Stylesheet ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=425&amp;oldid=prev</id>
		<title>James: Page Creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.tei-c.org/index.php?title=Remove-Default-Attributes.xslt&amp;diff=425&amp;oldid=prev"/>
		<updated>2005-09-05T15:49:00Z</updated>

		<summary type="html">&lt;p&gt;Page Creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Remove Default Attributes=&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This is a straightforward XSLT stylesheet for removing the default attributes from a TEI document.  &lt;br /&gt;
These are often provided by the DTD or schema, and can clutter up viewing of them.&lt;br /&gt;
&lt;br /&gt;
Add any comments to the &amp;#039;discussion&amp;#039; tab.&lt;br /&gt;
&lt;br /&gt;
== Required Input ==&lt;br /&gt;
&lt;br /&gt;
While this may work on other documents it assumes a TEI Lite P4 XML document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expected Output ==&lt;br /&gt;
&lt;br /&gt;
Same document, but with default attributes removed if they have the default values.&lt;br /&gt;
&lt;br /&gt;
== Known Restrictions or Problems ==&lt;br /&gt;
&lt;br /&gt;
It only works on TEI P4 documents, and is not namespace-aware, but seems to work fine on these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
  remove_default_attrs.xslt&lt;br /&gt;
&lt;br /&gt;
  This style-sheet reads in an XML file (presumably a TEI&lt;br /&gt;
  Lite P4 XML one) and writes out the same file with&lt;br /&gt;
  any attributes that are specified with the same value as&lt;br /&gt;
  the default value (as listed in the 2004-07-16 version of&lt;br /&gt;
  teixlite.dtd) removed.&lt;br /&gt;
&lt;br /&gt;
  I don&amp;#039;t claim for a moment that the method I&amp;#039;ve used here is the best in&lt;br /&gt;
  any sense of the word &amp;quot;best&amp;quot;, only that it was the one I happened to create&lt;br /&gt;
  using the flattened teixlite.dtd as a starting point.&lt;br /&gt;
  &lt;br /&gt;
  Written 2005-08-10 by Syd Bauman&lt;br /&gt;
  copyleft 2005 by Syd Bauman and the Text Encoding Initiative Consortium&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; version=&amp;quot;1.0&amp;quot; xmlns:tei=&amp;quot;http://www.tei-c.org/ns/1.0&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:output indent=&amp;quot;yes&amp;quot; &lt;br /&gt;
              method=&amp;quot;xml&amp;quot;&lt;br /&gt;
              omit-xml-declaration=&amp;quot;no&amp;quot;&lt;br /&gt;
              cdata-section-elements=&amp;quot;eg&amp;quot;/&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Generic copy-everything template --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;*|@*|processing-instruction()|comment()&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:copy&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:apply-templates select=&amp;quot;*|@*|text()|processing-instruction()|comment()&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:copy&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;   &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- get rid of TEIform= attrs whose value match GI --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- idea from Sebastian Rahtz&amp;#039;s tei2tei.xsl --&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;@TEIform&amp;quot;&amp;gt;        &amp;lt;!-- if we&amp;#039;re on a TEIform= --&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = name(..) )&amp;quot;&amp;gt;  &amp;lt;!-- if my value != name of the element I&amp;#039;m on --&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEIform&amp;quot;&amp;gt;     &amp;lt;!-- output myself --&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;                            &amp;lt;!-- thus, if my value == name of element I&amp;#039;m on, --&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;                        &amp;lt;!-- since we do nothing the entire attr is dropped --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;!-- Now match each possible default, and reporoduce it only if  --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the value is not the default --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Each of these has precisely the same format, and thus it would --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- probably be a good idea to make a separate parameterized routine --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- instead. Someday. In the meantime, this is how they all work: --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- When we hit an element/attribute combination that has a default value --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- in the DTD, test to see if the value specified is the same as the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- default value in the DTD. If it is not, write out the attribute as --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- it was specified in the instance; if it is, do nothing, thus dropping --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- the entire attribute from the output. Note that the names of elements, --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- attributes, and the attribute values are just hard-coded here in the --&amp;gt;&lt;br /&gt;
  &amp;lt;!-- style-sheet: no clever look-ups being performed here. --&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;gi/@TEI&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;TEI&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@anchored&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;yes&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;anchored&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@cols&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;cols&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;textClass/@default | bibl/@default | biblFull/@default | editorialDecl/@default | langUsage/@default | listBibl/@default | projectDesc/@default | samplingDecl/@default | sourceDesc/@default&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;NO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;default&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;q/@direct&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;direct&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;refsDecl/@doctype&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;TEI.2&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;doctype&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@from | xptr/@from&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;ROOT&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;from&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@org | div0/@org | div1/@org | div2/@org | div3/@org | div4/@org | div5/@org | div6/@org | div7/@org | div/@org&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;uniform&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;org&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;seg/@part | ab/@part | div0/@part | div1/@part | div2/@part | div3/@part | div4/@part | div5/@part | div6/@part | div7/@part | div/@part | l/@part | lg/@part | s/@part&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;N&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;part&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;note/@place&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unspecified&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;place&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;editor/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;editor&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@role | row/@role&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;data&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;role&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;cell/@rows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;1&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;rows&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;lg/@sample | div0/@sample | div1/@sample | div2/@sample | div3/@sample | div4/@sample | div5/@sample | div6/@sample | div7/@sample | div/@sample&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;complete&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;sample&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;del/@statuss&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unremarkable&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;availability/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;unknown&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@status&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;new&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@targOrder | ptr/@targOrder | ref/@targOrder | xptr/@targOrder&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;U&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;targOrder&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;xref/@to | xptr/@to&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;DITTO&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;to&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;titlePart/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;main&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;list/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;simple&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;teiHeader/@type&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;not( . = &amp;#039;text&amp;#039; )&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:XSLT]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
</feed>