TEIC / TEI

The Text Encoding Initiative Guidelines
https://www.tei-c.org
Other
276 stars 88 forks source link

TEI tagdoc calls a namespace declaration an attribute #2236

Closed sydb closed 2 years ago

sydb commented 2 years ago

From the TEI tagdoc:

  <remarks versionDate="2015-03-10" xml:lang="en">
    <p>This element is required. It is customary to specify the
    TEI namespace <code>http://www.tei-c.org/ns/1.0</code> on it, using
    the <att>xmlns</att> attribute.</p>
  </remarks>

The problem is that we generally use the XDM, in which @xmlns is not an attribute, but rather a namespace declaration. (To prove this to yourself without having to do a lot of reading, try adding <xsl:attribute name="xmlns" select="'http://www.example.org/does/not/work'"/> to your XSLT 2.0 or 3.0 program. Alright, that’s not proof, but it is mighty strong evidence.)

It is not at all obvious that we should change this, though. From the XSLT (or XQuery or Schematron or XPath) programmer’s point of view, the distinction is important. Thus we should change it. But from the document creator’s perspective there is no difference whatsoever, and what is written is quite clear — thus on the theory that we should leave it obvious for the end user, and let the programmers figure it out, we should not change it.

See also #1871 and #2233.

sydb commented 2 years ago

I am leaning towards a re-write to:

 <remarks versionDate="[DATE]" xml:lang="en">
    <p>This element is required. It is customary to specify the
    TEI namespace <code>http://www.tei-c.org/ns/1.0</code> on
    it, for example: <tag type="start">TEI version="4.4.0" xml:lang="it"
    xmlns="http://www.tei-c.org/ns/1.0"</tag>.</p>
  </remarks>

This allows us to dodge the attribute vs namespace decl controversy completely.