﻿<?xml version="1.0" encoding="utf-8"?>
<lgr xmlns="urn:ietf:params:xml:ns:lgr-1.0">
  <meta>
    <version comment="Second Level Reference LGR">3</version>
    <date>2024-10-25</date>
    <language>de</language>
    <unicode-version>11.0.0</unicode-version>
    <description type="text/html"><![CDATA[
       <div class="instructions">
<h2>INSTRUCTIONS</h2>
  <ul>
    <li>These instructions cover how to adopt an LGR based on this reference LGR for a given
    zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.</li>
    <li>As described  the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an 
    LGR MUST contain the following elements in its header:
      <ul style="list-style-type:square;">
        <li>Script or Language Designator (see below for guidance) </li>
        <li>Version Number (this must increase with each amendment to the LGR, even if the updates 
            are limited to the header itself) </li>
        <li>Effective Date (the date at which the policy becomes applicable in operational use) </li>
        <li>Registry Contact Details (contact name, email address, and/or phone number)</li>
      </ul>
    </li>
    <li>The following information is optional:
    <ul style="list-style-type:square;">
    <li>Document creation date</li>
    <li>Applicable Domain(s)</li>
    <li>Changes made to the Reference LGR before adopting</li>
    </ul>
    </li>
  </ul>
  <p>Please add or modify the following items in the <b>XML source code for this file</b> before 
  depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)</p>
<h3>Meta Data</h3>
<p>Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, 
   please replace or delete the default comment. Version comments may be used by some tools as part of the page header.</p>
  <p><code>&lt;version comment=&quot;</code>[Please replace (or delete) the optional comment]<code>&quot;&gt;</code>[Please fill in version number, starting at 1]<code>&lt;/version&gt;</code></p>
  <p><code>&lt;date&gt;</code>[Please fill in with publication date, in YYYY-MM-DD format]<code>&lt;/date&gt;</code></p>
  <p><code>&lt;validity-start&gt;</code>[Please fill in effective date, in YYYY-MM-DD format]<code>&lt;/validity-start&gt;</code></p>
  <p>Note: the scope element may be repeated, so that the same document can serve for multiple domains.</p>
  <p><code>&lt;scope type=&quot;domain&quot;&gt;</code>[Please provide, in &quot;.domain&quot; format]<code>&lt;/scope&gt;</code></p>
<p><strong>Registry Contact Information:</strong></p>
  <p>Please fill in the <a href="#registry_contact_details">Registry Contact Details</a>.</p>
<p><strong>Change History</strong></p>
  <p>If you made technical modifications to the LGR, please summarize them in the <a href="#change_history">Change History</a> (and also note the details in the appropriate section of the description).</p>
<p>PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT</p></div>
       
       <section id="registry_contact_details">
<h2>Registry Contact Details</h2>
<ul style="list-style:none;">
<li><b>Contact Name:</b> [Please fill in Contact Name]</li>
<li><b>Email address:</b> [Please fill in Email address]</li>
<li><b>Phone Number:</b> [Please fill in optional Phone Number]</li>
</ul>
</section>

        <h1>Label Generation Rules for German</h1>
        <h2>Overview</h2>
        <p>This document specifies a set of Label Generation Rules (LGR) for the German language
    using a language-specific repertoire for the second level domain or domains identified above.
    The format of this file follows [RFC 7940].
    This LGR is adapted from the “Reference LGR for the Second Level for the German Language” [Ref-LGR-de-Latn], for details, see <a href="#change_history">Change History</a> below.</p>

        <p><b>Standalone LGR:</b> This LGR is designed to be used in a zone that does not cater to IDNs 
    other than those valid under this LGR. 
    This LGR lacks features that would allow its use in the context
    of another LGR in the same zone, and it may contain other features incompatible with such use.</p>

        <h2>Repertoire</h2>
        <p>Almost all references converge on 30 Latin code points. </p>

        <p>DENIC eG has published an extensive IDN character list used for the German (.de) ccTLD [700] and NIC.AT has deposited a 
        more restrained Latin script IDN list for the Austrian (.at) ccTLD [701] that notably excludes “ß”. These lists
        include many code points needed for spelling personal or business names from neighboring countries. Most of 
        them have been excluded here, since adding them would be more appropriate for a script-based LGR 
        (or subset thereof).</p>

       <h3>Excluded code points</h3>

        <p>Letters documented in some references, but not included:</p>
        <ul  class="cp-list">
           <li><p>U+00E1 LATIN SMALL LETTER A WITH ACUTE</p></li>
           <li><p>U+00E3 LATIN SMALL LETTER A WITH TILDE</p></li>
           <li><p>U+00E5 LATIN SMALL LETTER A WITH RING ABOVE</p></li>
           <li><p>U+00E6 LATIN SMALL LETTER AE</p></li>
           <li><p>U+00EB LATIN SMALL LETTER E WITH DIAERESIS</p></li>
           <li><p>U+00EC LATIN SMALL LETTER I WITH GRAVE</p></li>
           <li><p>U+00ED LATIN SMALL LETTER I WITH ACUTE</p></li>
           <li><p>U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX</p></li>
           <li><p>U+00EF LATIN SMALL LETTER I WITH DIAERESIS</p></li>
           <li><p>U+00F0 LATIN SMALL LETTER ETH</p></li>
           <li><p>U+00F1 LATIN SMALL LETTER N WITH TILDE</p></li>
           <li><p>U+00F2 LATIN SMALL LETTER O WITH GRAVE</p></li>
           <li><p>U+00F3 LATIN SMALL LETTER O WITH ACUTE</p></li>
           <li><p>U+00F8 LATIN SMALL LETTER O WITH STROKE</p></li>
           <li><p>U+00FA LATIN SMALL LETTER U WITH ACUTE</p></li>
           <li><p>U+00FD LATIN SMALL LETTER Y WITH ACUTE</p></li>
           <li><p>U+00FE LATIN SMALL LETTER THORN</p></li>
           <li><p>U+00FF LATIN SMALL LETTER Y WITH DIAERESIS</p></li>
           <li><p>U+0101 LATIN SMALL LETTER A WITH MACRON</p></li>
           <li><p>U+0103 LATIN SMALL LETTER A WITH BREVE</p></li>
           <li><p>U+0105 LATIN SMALL LETTER A WITH OGONEK</p></li>
           <li><p>U+0107 LATIN SMALL LETTER C WITH ACUTE</p></li>
           <li><p>U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX</p></li>
           <li><p>U+010B LATIN SMALL LETTER C WITH  DOT ABOVE</p></li>
           <li><p>U+010D LATIN SMALL LETTER C WITH CARON</p></li>
           <li><p>U+010F LATIN SMALL LETTER D WITH CARON</p></li>
           <li><p>U+0111 LATIN SMALL LETTER D WITH STROKE</p></li>
           <li><p>U+0113 LATIN SMALL LETTER E WITH MACRON</p></li>
           <li><p>U+0115 LATIN SMALL LETTER E WITH BREVE</p></li>
           <li><p>U+0117 LATIN SMALL LETTER E WITH DOT ABOVE</p></li>
           <li><p>U+0119 LATIN SMALL LETTER E WITH OGONEK</p></li>
           <li><p>U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX</p></li>
           <li><p>U+011F LATIN SMALL LETTER G WITH BREVE</p></li>
           <li><p>U+0121 LATIN SMALL LETTER G WITH DOT ABOVE</p></li>
           <li><p>U+0123 LATIN SMALL LETTER G WITH CEDILLA</p></li>
           <li><p>U+0129 LATIN SMALL LETTER I WITH TILDE</p></li>
           <li><p>U+012B LATIN SMALL LETTER I WITH MACRON</p></li>
           <li><p>U+012D LATIN SMALL LETTER I WITH BREVE</p></li>
           <li><p>U+012F LATIN SMALL LETTER I WITH OGONEK</p></li>
           <li><p>U+0131 LATIN SMALL LETTER DOTLESS I</p></li>
           <li><p>U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX</p></li>
           <li><p>U+0137 LATIN SMALL LETTER K WITH CEDILLA</p></li>
           <li><p>U+0138 LATIN SMALL LETTER KRA</p></li>
           <li><p>U+013A LATIN SMALL LETTER L WITH ACUTE</p></li>
           <li><p>U+013C LATIN SMALL LETTER L WITH CEDILLA</p></li>
           <li><p>U+013E LATIN SMALL LETTER L WITH CARON</p></li>
           <li><p>U+0142 LATIN SMALL LETTER L WITH STROKE</p></li>
           <li><p>U+0144 LATIN SMALL LETTER N WITH ACUTE</p></li>
           <li><p>U+0146 LATIN SMALL LETTER N WITH CEDILLA</p></li>
           <li><p>U+0148 LATIN SMALL LETTER N WITH CARON</p></li>
           <li><p>U+014B LATIN SMALL LETTER ENG</p></li>
           <li><p>U+014D LATIN SMALL LETTER O WITH MACRON</p></li>
           <li><p>U+014F LATIN SMALL LETTER O WITH BREVE</p></li>
           <li><p>U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE</p></li>
           <li><p>U+0153 LATIN SMALL LIGATURE OE</p></li>
           <li><p>U+0155 LATIN SMALL LETTER R WITH ACUTE</p></li>
           <li><p>U+0157 LATIN SMALL LETTER R WITH CEDILLA</p></li>
           <li><p>U+0159 LATIN SMALL LETTER R WITH CARON</p></li>
           <li><p>U+015B LATIN SMALL LETTER S WITH ACUTE</p></li>
           <li><p>U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX</p></li>
           <li><p>U+015F LATIN SMALL LETTER S WITH CEDILLA</p></li>
           <li><p>U+0161 LATIN SMALL LETTER S WITH CARON</p></li>
           <li><p>U+0163 LATIN SMALL LETTER S WITH CEDILLA</p></li>
           <li><p>U+0165 LATIN SMALL LETTER T WITH CARON</p></li>
           <li><p>U+0167 LATIN SMALL LETTER T WITH STROKE</p></li>
           <li><p>U+0169 LATIN SMALL LETTER U WITH TILDE</p></li>
           <li><p>U+016B LATIN SMALL LETTER U WITH MACRON</p></li>
           <li><p>U+016D LATIN SMALL LETTER U WITH BREVE</p></li>
           <li><p>U+016F LATIN SMALL LETTER U WITH RING</p></li>
           <li><p>U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE</p></li>
           <li><p>U+0173 LATIN SMALL LETTER U WITH OGONEK</p></li>
           <li><p>U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX</p></li>
           <li><p>U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX</p></li>
           <li><p>U+017A LATIN SMALL Z WITH ACUTE</p></li>
           <li><p>U+017C LATIN SMALL LETTER Z WITH DOT ABOVE</p></li>
           <li><p>U+017E LATIN SMALL Z WITH CARON</p></li>
     </ul>
     <p>A few sources, among them [700], provide in their repertoire for code points from all the European languages, Danish, 
     Polish, Turkish, Romanian, Czech and so on.  These have been excluded.</p>

     <h3>Extended code points</h3>

      <p>A number of letters not considered essential to writing the core vocabulary of the language are nevertheless in common use. 
        Where they have not been added to the core repertoire, they are flagged as “extended-cp” in the table of code points.
        A context rule is provided that by default will prohibit labels with such extended code points. To support extended single code points or code point 
        sequences, delete the context “extended-cp” from their repertoire definition.</p>

    <p>The code points specified as extended are mostly those used for loanwords from French, which are accessible on German
     keyboards and commonly retained in spelling.</p>

     <h2>Variants</h2>
     <p>U+00DF LATIN SMALL LETTER SHARP S is used in Germany and Austria, but not in Switzerland, 
     where the spelling “ss” is used instead. In addition, the letter is normally uppercased as “SS”. This might suggest
     it as a candidate for a variant mapping. While both the Latin Variant Issues Report [VIP] as well as DENIC,
     the operator of the .de ccTLD orginally decided that no variant mapping was warranted, several registries show
     “ß” and “ss” as simple variants in their IDN tables. The Root Zone LGR for the Latin script [RZ-LGR-Latn] 
     has come to a somewhat nuanced conclusion. The variant scheme developed there attempts to address IDNA 2003 
     compatibility issues by making “ss” an allocatable fallback variant of U+00DF. An original label may contain U+00DF in
     any position, and if it does, the version with “ss” substituted for all instances of U+00DF would be 
     “allocatable”, but not the other way around. By default, this “fallback” variant scheme is enabled in this LGR. 
     (See “<a href="optionally_enabled_variants">Optionally-Enabled Variants</a>” below).</p>

     <p>No other variants are applicable when using the LGR in a standalone fashion.</p>

     <p><b>Variants Limited to Standalone Use</b> This LGR is not intended for use with LGRs for other 
    languages or scripts in the same zone. 
    The LGR does not define any “blocked” variants with code points in other languages or script that would 
    prevent malicious registration of duplicate labels perceived as the same by users. As a result of transitivity, 
    the scheme of internal variants defined here would have to be imposed on other LGRs 
    that contain copies or variants of the affected code points.</p>

    <p>If it is desired to support multiple languages in the same zone, the preferred method would be to support 
    the corresponding script LGRs, which cater to the use of multiple languages, and are designed with 
    the possibility of concurrent use in mind.</p>

     <h3 id="optionally_enabled_variants">Optionally-enabled Variants</h3>

      <p>Certain variants in this LGR are defined as optionally enabled. They are using the context rule “enabled”.
         This context rule matches any label (it always succeeds). Any variant marked with when=“enabled” (in the XML file) 
         is in force, while marking it with not-when=“enabled” causes the variant definition to be ignored in processing.
         This allows these variants to be disabled, for example, to better match legacy practice for a given zone.</p>

        <p>Care must be taken to enable or disable variants so that all variant mappings to and from the 
         same code point are either enabled or disabled at the same time, ensuring that all enabled variant 
         mappings remain symmetric and transitive.</p>

      <p>The specification of variants in this LGR follows the guidelines in [RFC 8228].</p>

     <h2>Character Classes</h2>

     <p>This LGR does not define named character classes.</p>

     <h2>Rules</h2>

      <h3>Common Rules</h3>

     <p>The LGR includes the rules and actions to implement the following restrictions, some of which are mandated by the IDNA
         protocol. They are marked with &#x235F; and included here by default. A special context rule enables optional variants by default.</p>
       <ul>
       <li><b>Hyphen Restrictions</b> &mdash; restrictions on the allowable placement of hyphens (no leading/ending hyphen
             and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [150]. 
             They are implemented here as context rule on U+002D (-) HYPHEN-MINUS.</li>
          <li><b>Leading Combining Marks</b>   &mdash;  restrictions on the allowable placement of combining marks
             (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [150].</li>
       <li><b>Enabled</b> &mdash; matches any label. Used as variant context rule; any variant with 
               <code>when="enabled"</code> in the xml will be active, while any with <code>not-when="enabled"</code> will be inactive.</li>
       </ul>

     <h2>Actions</h2>

     <p>This LGR includes the default actions for LGRs as well as the action needed to
        invalidate labels with misplaced combining marks. They are marked with &#x235F;.
        For a description see [RFC 7940].</p>

     <p>Because this LGR defines allocatable fallback variants the following default actions are applicable.</p>

    <ul>
    <li><b>blocked</b> &mdash;  a variant label containing a blocked variant will receive a disposition of “blocked”.</li>
    <li><b>r-original</b> &mdash; a label containing one or more of this reflexive variant type 
       and no others represents an original label 
       and receives a disposition of “valid”.</li>
    <li><b>fallback</b> &mdash; a label containing one or more of these variant types and no others 
       represents a label that contains only fallback variants
       and receives a disposition of “allocatable”.</li> 
    <li><b>fallback plus other</b> &mdash; any label remaining containing both this variant type and any others
        receives a disposition of “blocked”.</li>
    </ul>
    <p>These actions resolve as “allocatable” any label where all variants are of type “fallback”, and as “valid” any label 
    where all variants are of type “r-original”. Labels with a mix of variant types are resolved as “blocked”.</p>
    
    <p>To account for original code points in a permuted variant, reflexive variant 
    mappings with an “r-” prefix are used. (See [RFC 7940]). 
    In particular, the mapping type “r-original” is given to any code point that has a fallback mapping, 
    but that appears in its non-fallback form in the original label, and thus “maps to itself”.</p>

    <p>Default actions that are
     triggered by the LGR-specific variant types described above limit the “allocatable” variant
     labels to those variants resulting from the substitution of U+00DF by “ss”, while disallowing
     mixed use of variants with or without subsitution, except as in the original applied-for label.
     The use of such variants is <a>"optionally_enabled_variants">optionally enabled</a> 
     in this LGR.</p>

     <p>Note that the mapping types for variants are not symmetric: they depend on which code point is considered
     the source or the target in a given mapping. As specified in [RFC 7940], when mapping types are evaluated
     code points in a label that are unchanged use the type of their “reflexive” mapping. 
     Per [RFC 7940] the actions are always applied one after the other, and the evaluation stops at the first 
     action that assigns a disposition to a given label.</p>

    <h2>Methodology and Contributors</h2>

    <p>The LGR in this document has been adapted from the corresponding Reference LGR for the Second Level. The Second Level Reference LGR for the German Language was developed
        by Michel Suignard and Asmus Freytag, including input by Michael Everson,
        Nicholas Ostler, and Wil Tan, and based on multiple
        open public consultations.</p>

    <section id="change_history">
    <h3>Changes from Version Dated 10 October 2016</h3><p>Language tag has been updated.</p>

    <h3>Changes from Version Dated 18 May 2021</h3>
    <p>Unicode Version has been updated.</p>
    <p>Variant for U+00DF has been defined to match [RZ-LGR-Latn]. This fallback variant is enabled here by default, 
    but is marked as “enabled” to allow registries to deactivate it if required.</p>

    <h3>Changes from Version Dated 25 October 2024</h3>
        <p>Adopted from the Second Level Reference LGR for the German Language [Ref-LGR-de-Latn] without normative changes.</p>
    </section>

    <h2>References</h2>
    <p>General references for the language:</p>
    <ul>
      <li><p>Rat für deutsche Rechtschreibung, “Regeln und Wörterverzeichnis”, 
      München und Mannheim, February 2006 (with corrections from 2010) https://www.rechtschreibrat.com</p></li>
      <li><p>Duden. 1996. Rechtschreibung der deutschen Sprache. 21. Auflage. Mannheim: Dudenverlag. ISBN 3-411-04011-4</p></li>
      <li><p>Wahrig, Gerhard. 1974. Deutsches Wörterbuch. Gütersloh: Bertelsmann Lexikon-Verlag. ISBN 3-570-06588-X</p></li>
      <li><p>Wikipedia: “German orthography”, https://en.wikipedia.org/wiki/German_alphabet</p></li>
      <li><p>Omniglot: German (deutsch) https://www.omniglot.com/writing/german.htm</p></li>
    </ul>

    <p>In addition, the following references were consulted:<p>
    <dl class="references">

      <dt>[RFC 7940]</dt>
      <dd>Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940. </dd> 

      <dt>[Ref-LGR-de-Latn]</dt>
      <dd>ICANN, Second Level Reference Label Generation Rules for the German Language (de-Latn), 25 October 2024 (XML)
      https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-german-language-25oct24-en.xml
      non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-german-language-25oct24-en.html</dd>

      <dt>[RFC 8228]</dt>
      <dd>A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017,
    https://www.rfc-editor.org/info/rfc8228</dd>

      <dt>[RZ-LGR-Latn]</dt>
      <dd>ICANN, Root Zone Label Generation Rules for the Latin Script (und-Latn), 26 May 2022 (XML)
      https://www.icann.org/sites/default/files/lgr/rz-lgr-5-latin-script-26may22-en.xml</dd>

      <dt>[RZ-LGR-Overview]</dt>
      <dd>Integration Panel, “Root Zone Label Generation Rules (RZ LGR-5): Overview and Summary”, 26 May 2022 (PDF), https://www.icann.org/sites/default/files/lgr/rz-lgr-5-overview-26may22-en.pdf</dd>

      <dt>[RZ-LGR-5]</dt>
      <dd>Integration Panel, “Root Zone Label Generation Rules (RZ-LGR-5)”, 26 May 2022 (XML), https://www.icann.org/sites/default/files/lgr/rz-lgr-5-common-26may22-en.xml <br/>
     <i>non-normative HTML presentation: https://www.icann.org/sites/default/files/lgr/rz-lgr-5-common-26may22-en.html</i></dd>

      <dt>[Unicode 11.0.0]</dt>
      <dd>The Unicode Consortium. The Unicode Standard, Version 11.0.0, (Mountain View, CA: The Unicode Consortium, 2018. ISBN 978-1-936213-19-1) 
     https://www.unicode.org/versions/Unicode11.0.0/</dd>

      <dt>[VIP]</dt>
     <dd>ICANN VIP Study Group for the Latin script, “Considerations in the use of the Latin script in variant internationalized top-level domains”,
       https://archive.icann.org/en/topics/new-gtlds/latin-vip-issues-report-07oct11-en.pdf</dd>
    </dl>

     <p>In the listing of the <a href="#repertoire">repertoire by code point</a>, references starting from [0] refer to
        the version of the Unicode Standard in which the corresponding code point was initially encoded.
        Other references (starting from [100]) document usage of code points. Entries in the table may have
        multiple source reference values. 
        In the listing of <a href="#whole_label_evaluation_and_context_rules">whole label evaluation and context rules</a>,
        reference [150] indicates the source for common rules.
        For more details, see the      <a href="#table_of_references">Table of References</a> below.</p>

]]></description>
    <references>
      <reference id="0" comment="Code points cited were originally encoded in Unicode Version 1.1">The Unicode Standard, Version 1.1</reference>
      <reference id="100">Internetstiftelsen i Sverige (IIS), “IDN Reference table for German language”  
         https://github.com/dotse/IDN-ref-tables/blob/master/language-tables/german-lang-ref-table.txt accessed on 2016-10-16</reference>
      <reference id="150">RFC 5891, Internationalized Domain Names in Applications (IDNA): Protocol https://tools.ietf.org/html/rfc5891</reference>
      <reference id="200" comment="This table lists only the characters outside the set a-z">ISO/IEC 6937 Third Ed. 2001-12-17- Information 
	    technology — Coded graphic character set for text communication — Latin alphabet: Table D.1 (p 35) Use of Latin alphabetic characters.</reference>
      <reference id="301" comment="Code points cited form the standard set">Everson, Michael. The Alphabets of Europe: “German” https://www.evertype.com/alphabets/german.pdf</reference>
      <reference id="302" comment="Code points cited are from an extended set">Everson, Michael. The Alphabets of Europe: “German” https://www.evertype.com/alphabets/german.pdf</reference>
      <reference id="304" comment="Code points cited are rare or archaic">Everson, Michael. The Alphabets of Europe: “German” https://www.evertype.com/alphabets/german.pdf</reference>
      <reference id="401" comment="Code points cited are from the set of Main Letters">The Unicode Consortium, Common Locale Data Repository (CLDR) Version 28 (2015-09-16) - 
	  Locale Data Summary for German [de] https://www.unicode.org/cldr/charts/28/summary/de.html</reference>
      <reference id="402" comment="Code points cited are from the Auxiliary set">The Unicode Consortium, Common Locale Data Repository (CLDR) Version 28 (2015-09-16) - 
	  Locale Data Summary for German [de] https://www.unicode.org/cldr/charts/28/summary/de.html</reference>
      <reference id="603" comment="Code points cited are supported in a national edition of ISO-646.">ISO/IEC 646:1991 — Information 
	   technology — ISO 7-bit coded character set for information interchange</reference>
      <reference id="601" comment="According to this reference, the alphabet is listed as using the full basic set A-Z">Wikipedia: “Latin Alphabets” 
	     https://en.wikipedia.org/wiki/Latin_alphabets - accessed 2015-10-31</reference>
      <reference id="604" comment="The table only lists code points beyond A-Z">Wikipedia: “Latin Alphabets” https://en.wikipedia.org/wiki/Latin_alphabets. accessed 2015-10-31</reference>
      <reference id="605" comment="Code points cited are listed as in extended use">Wikipedia: “German orthography” https://en.wikipedia.org/wiki/German_orthography-Alphabet</reference>
      <reference id="700" comment="The table only lists code points beyond ASCII">DENIC eG, “IDN Character List”, https://www.denic.de/en/know-how/idn-domains/idn-character-list/</reference>
      <reference id="701">NIC.AT, Latin script table for .at TLD, https://www.iana.org/domains/idn-tables/tables/at_latn_1.0.txt</reference>
    </references>
  </meta>
  <data>
    <char cp="002D" not-when="hyphen-minus-disallowed" tag="sc:Zyyy" ref="0 100 301 401 601 701" comment="HYPHEN-MINUS" />
    <char cp="0030" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT ZERO; &#x235F;" />
    <char cp="0031" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT ONE; &#x235F;" />
    <char cp="0032" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT TWO; &#x235F;" />
    <char cp="0033" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT THREE; &#x235F;" />
    <char cp="0034" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT FOUR; &#x235F;" />
    <char cp="0035" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT FIVE; &#x235F;" />
    <char cp="0036" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT SIX; &#x235F;" />
    <char cp="0037" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT SEVEN; &#x235F;" />
    <char cp="0038" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT EIGHT; &#x235F;" />
    <char cp="0039" tag="Common-digit sc:Zyyy" ref="0 100 301 401 601 701" comment="DIGIT NINE; &#x235F;" />
    <char cp="0061" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER A" />
    <char cp="0062" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER B" />
    <char cp="0063" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER C" />
    <char cp="0064" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER D" />
    <char cp="0065" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER E" />
    <char cp="0066" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER F" />
    <char cp="0067" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER G" />
    <char cp="0068" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER H" />
    <char cp="0069" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER I" />
    <char cp="006A" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER J" />
    <char cp="006B" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER K" />
    <char cp="006C" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER L" />
    <char cp="006D" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER M" />
    <char cp="006E" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER N" />
    <char cp="006F" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER O" />
    <char cp="0070" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER P" />
    <char cp="0071" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER Q" />
    <char cp="0072" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER R" />
    <char cp="0073" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER S" />
    <char cp="0073 0073" when="enabled" comment="Sequence added for variant mapping">
      <var cp="00DF" when="enabled" type="blocked" comment="IDNA2003 Compatibility" />
    </char>
    <char cp="0074" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER T" />
    <char cp="0075" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER U" />
    <char cp="0076" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER V" />
    <char cp="0077" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER W" />
    <char cp="0078" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER X" />
    <char cp="0079" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER Y" />
    <char cp="007A" tag="sc:Latn" ref="0 100 301 401 601 701" comment="LATIN SMALL LETTER Z" />
    <char cp="00DF" tag="sc:Latn" ref="0 100 200 301 401 603 604 700" comment="LATIN SMALL LETTER SHARP S">
      <var cp="0073 0073" when="enabled" type="fallback" comment="IDNA2003 Compatibility" />
      <var cp="00DF" when="enabled" type="r-original" comment="Eszett" />
    </char>
    <char cp="00E0" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER A WITH GRAVE" />
    <char cp="00E2" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER A WITH CIRCUMFLEX" />
    <char cp="00E4" tag="sc:Latn" ref="0 100 200 301 401 603 604 700 701" comment="LATIN SMALL LETTER A WITH DIAERESIS" />
    <char cp="00E7" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER C WITH CEDILLA" />
    <char cp="00E8" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER E WITH GRAVE" />
    <char cp="00E9" when="extended-cp" tag="sc:Latn" ref="0 301 402 605 700 701" comment="LATIN SMALL LETTER E WITH ACUTE" />
    <char cp="00EA" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER E WITH CIRCUMFLEX" />
    <char cp="00F4" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER O WITH CIRCUMFLEX" />
    <char cp="00F6" tag="sc:Latn" ref="0 100 200 301 401 603 604 700 701" comment="LATIN SMALL LETTER O WITH DIAERESIS" />
    <char cp="00F9" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER U WITH GRAVE" />
    <char cp="00FB" when="extended-cp" tag="sc:Latn" ref="0 402 605 700 701" comment="LATIN SMALL LETTER U WITH CIRCUMFLEX" />
    <char cp="00FC" tag="sc:Latn" ref="0 100 200 301 401 603 604 700 701" comment="LATIN SMALL LETTER U WITH DIAERESIS" />
  </data>
  <!--Rules section goes here-->
  <rules>
    <!--Character class definitions go here-->
    <!--Whole label evaluation and context rules go here-->
    <rule name="leading-combining-mark" ref="150" comment="RFC 5891 restrictions on placement of combining marks &#x235F;">
      <start />
      <union>
        <class property="gc:Mn" />
        <class property="gc:Mc" />
      </union>
    </rule>
    <rule name="hyphen-minus-disallowed" ref="150" comment="RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS &#x235F;">
      <choice>
        <rule comment="no leading hyphen">
          <look-behind>
            <start />
          </look-behind>
          <anchor />
        </rule>
        <rule comment="no trailing hyphen">
          <anchor />
          <look-ahead>
            <end />
          </look-ahead>
        </rule>
        <rule comment="no consecutive hyphens in third and fourth">
          <look-behind>
            <start />
            <any />
            <any />
            <char cp="002D" comment="hyphen-minus" />
          </look-behind>
          <anchor />
        </rule>
      </choice>
    </rule>
    <rule name="extended-cp" comment="context to gate off code points from the extended range, matches no label &#x235F;">
      <start />
      <end />
    </rule>
    <rule name="enabled" comment="use as when-context to enable: matches any label &#x235F;">
      <start />
      <any count="0+" />
      <end />
    </rule>
    <!--Action elements go here - order defines precedence-->
    <action disp="invalid" match="leading-combining-mark" comment="labels with leading combining marks are invalid &#x235F;" />
    <action disp="blocked" any-variant="blocked" comment="any variant label containing blocked variants is blocked &#x235F;" />
    <action disp="allocatable" all-variants="fallback" comment="any label with all variants of type fallback is allocatable &#x235F;" />
    <action disp="blocked" any-variant="fallback" comment="any variant label with a mix of variant forms is blocked &#x235F;" />
    <action disp="valid" all-variants="r-original" comment="any remaining label containing only original code points is valid  &#x235F;" />
    <action disp="valid" comment="catch all (default action) &#x235F;" />
  </rules>
</lgr>