In der Dokumentenverarbeitung ist es oft nützlich, die natürliche oder formale Sprache, in der der Inhalt geschrieben ist, zu identifizieren. Ein besonderes Attribut namens xml:lang kann in Dokumente eingefügt werden, um die für den Inhalt oder für die Attributwerte von beliebigen Elementen verwendete Sprache anzugeben. In gültigen Dokumenten muss dieses Attribut, wie jedes andere, deklariert werden. Die Werte dieses Attributs sind Sprachencodes gemäß Definition in [IETF RFC 1766]:
Identifikation der Sprache | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Der Langcode ist etwas folgender Art:
i-oder
I-.
x-oder
X-beginnen, um Konflikte mit Namen zu vermeiden, die später standardisiert oder bei der IANA registriert werden.
Es dürfen beliebig viele Subcode-Segmente
existieren. Falls das erste Subcode-Segment vorhanden ist
und aus zwei Buchstaben besteht, dann muss es ein Ländercode
aus [ISO
3166] sein. Falls der erste Subcode aus mehr als
zwei Buchstaben besteht, dann muss es ein bei der
IANA registrierter Subcode für die fragliche
Sprache sein; es sei denn, Langcode beginnt mit
einem x-
oder X-
.
Es ist üblich, den Sprachencode in Kleinbuchstaben und den Ländercode (falls vorhanden) in Großbuchstaben anzugeben. Beachten Sie, dass diese Werte, anders als andere Namen in XML-Dokumenten, von der Groß-/Kleinschreibung unabhängig sind.
Ein Beispiel:
<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p> <p xml:lang="de-DE">In welcher Straße hast du geparkt?</p> <p xml:lang="de-CH">In welcher Strasse hast du parkiert?</p> <sp who="Faust" desc='leise' xml:lang="de"> <l>Habe nun, ach! Philosophie,</l> <l>Juristerei, und Medizin</l> <l>und leider auch Theologie</l> <l>durchaus studiert mit heißem Bemüh'n.</l> </sp>
Die mit xml:lang gemachte Deklaration wird auf alle Attribute und den Inhalt des Elementes angewandt, für das xml:lang spezifiziert wurde. Innerhalb des Inhalts kann ein weiteres Attribut xml:lang dieses Verhalten für ein eingebettetes Element überschreiben.
Eine einfache Deklaration für xml:lang kann folgende Form annehmen:
xml:lang NMTOKEN #IMPLIED
Es können auch Vorgabewerte — falls sinnvoll — angegeben werden. In einer Sammlung von französischen Gedichten für deutschsprachige Studenten mit Erläuterungen und Bemerkungen in Deutsch kann die Deklaration für das xml:lang-Attribut etwa folgendermaßen aussehen:
<!ATTLIST gedicht xml:lang NMTOKEN 'fr'> <!ATTLIST erlaeuterung xml:lang NMTOKEN 'de'> <!ATTLIST bemerkung xml:lang NMTOKEN 'de'>