Gültige Zeichen in XML
Dieser Artikel beschreibt und klassifiziert die Unicode Charaktere, die in gültiger erscheinen können Xml.
XML 1.0
Unicode -Codepunkte in den folgenden Bereichen sind in XML 1.0 -Dokumenten gültig:[1]
- U+0009, u+000a, u+000d: diese sind die einzigen C0 Kontrollen in XML 1.0 akzeptiert;
- U+0020–U+D7FF, U+E000 - U+FFFD: Dies schließt aus etwas (nicht alle) Nicht-Charakter in dem Bmp (alle Ersatz, U+fffe und u+ffff sind verboten);
- U+10000–U+10ffff: Dies schließt ein alle Codepunkte in ergänzenden Ebenen, einschließlich Nicht-Charakter.
Die vorhergehenden Codepunkte enthalten die folgenden Steuerelemente, die in bestimmten Kontexten in XML 1.0 -Dokumenten nur gültig sind und deren Verwendung eingeschränkt und stark entmutigt ist:
- U+007F - U+0084, U+0086 - U+009F: Dies beinhaltet ein C0 -Steuerungszeichen und alle bis auf einen C1 Kontrolle.
XML 1.1
Unicode -Codepunkte in den folgenden Codepunktbereichen sind in XML 1.1 -Dokumenten immer gültig:[2]
- U+0001 - U+D7FF, U+E000 - U+FFFD: Dies schließt die meisten C0- und C1 -Steuerzeichen ein, schließt jedoch aus etwas (nicht alle) Nicht-Charter im BMP (surrogate, u+fffe und u+ffff sind verboten);
- U+10000–U+10ffff: Dies schließt ein alle Codepunkte in ergänzenden Ebenen, einschließlich Nicht-Charakter.
Die vorhergehenden Codepunkte enthalten die folgenden Steuerelemente, die in bestimmten Kontexten in XML 1.1 -Dokumenten nur gültig sind und deren Verwendung eingeschränkt und stark entmutigt ist:
- U+0001 - U+0008, U+000B - U+000C, U+000E - U+001F: Dies schließt ein die meisten (nicht alle) C0 -Steuerzeichen
- U+007F - U+0084, U+0086 - U+009F: Dies beinhaltet ein C0 -Kontrollcharakter und alle bis auf eine C1 -Steuerung.
Charaktere erlaubt, aber entmutigt
Darüber hinaus sind die folgenden Codepunkte, obwohl sie in allen Dokumenten XML 1.0 und XML 1.1 gültig sind, auch in beiden Versionen von XML eingeschränkt und entmutigt, da sie nicht Charakter in Unicode und ISO/IEC 10646 dauerhaft zugeordnet sind. Einige XML -Parser können sie sogar als ungültig in ihrem Charakter -Set -Decoder signalisieren, und XML -Dokumente, die sie enthalten, können einige eingeschränkte Schnittstellen nicht durchlaufen oder nicht austauschbar sind. Diese Nichtcharakter können weiterhin in Standard-UTFs codiert werden (wie z. UTF-8) Da diese UTFs nur die Codepunkte einschränken, die Ersatz-Nicht-Chartern zugewiesen wurden:
- U+fdd0–u+fdef
- U+1fffe - u+1ffff, u+2fffe - u+2ffff, u+3fffe - u+3ffff, u+4fffe - u+4ffff, u+5fffe - u+5ffff, u+6fffe - u+6ffff, u++ 7fffe - u+7ffff, u+8fffe - u+8ffff, u+9fffe - u+9ffff, u+afffe - u+affff, u+bfffe - u+bffff, u+cfffe - u+cffff, u+dfffe- U+dffff, u+efffe - u+effff, u+ffffe - u+fffff, u+10fffe - u+10ffff.
Beachten Sie, dass der Codepunkt U+0000, der dem Null Control -Zeichen zugeordnet ist, das einzige Zeichen ist, das in Unicode und ISO/IEC 10646 codiert ist und in jedem Dokument XML 1.0 und 1.1 immer ungültig ist.
Im Gegenteil der Codepunkt U+0085 ist ein gültiges Kontrollcharakter in Unicode und ISO/IEC 10646 sowie in XML 1.0- und XML 1.1 -Dokumenten (in allen Kontexten), und seine Verwendung wird nicht entmutigt (es wird in vielen XML -Kontexten oder als Linie als Whitespace behandelt, oder als Zeile -Schreakregelung ähnlich wie U+000D und U+000A in vorformatierten Texten in einigen XML -Anwendungen).
Nicht beschränkte Zeichen
Aus diesen Gründen enthält das nicht eingeschränkte Repertoire, das in allen Versionen von XML und in allen Kontexten (wie von der XML-Syntax zulässig) verwendet werden kann Mögliche zukünftige Codierung in Unicode und ISO/IEC 10646 und schließt das eingeschränkte Repertoire aus, um eine bessere Interoperabilität zu erhalten. Sie sind:
- U+0009, u+000a, u+000D: Dies sind die einzigen C0-Kontrollzeichen, die sowohl in XML 1.0 als auch in XML 1.1 akzeptiert werden (sie werden in vielen Kontexten als Whitespaces oder Linienbrüche behandelt);
- U+0020-U+007E: Dies sind alle nicht kontrollierten Zeichen im Basis-lateinischen Block (die "grafische" Teilmenge von US-ASCII) und schließen die letzte C0-Steuerung aus.
- U+0085: Dies ist das einzige C1-Kontrollcharakter, das sowohl in XML 1.0 als auch in XML 1.1 akzeptiert wird (es wird in vielen Kontexten als Whitespace oder Line-Break behandelt);
- U+00A0 - U+D7FF, U+E000 - U+FDCF, U+FDF0 - U+FFFD: Dies schließt alle anderen Zeichen im BMP aus, ausgenommen, ohne alle Nicht-Charakter (wie Ersatz);
- U+10000–U+1fffd, U+20000–U+2fffd, U+30000–U+3fffd, U+40000 - U+4fffd, U+50000–U+5fffd, U+60000 - U+6fffd, U+ 70000–U+7fffd, U+80000–U+8fffd, U+90000–U+9fffd, U+A0000 - U+AFFFD, U+B0000–U+BFFFD, U+C0000 - U+CFFFD, U+D0000– U+dfffd, u+e0000 - u+efffd, u+f0000 - u+ffffd, u+100000–u+10fffd: Dies schließt aus alle Nicht-Charter in ergänzenden Ebenen.
Siehe auch
- Liste der XML- und HTML -Charakterentitätsreferenzen
- Charakterentitätsreferenz
- Numerische Zeichenreferenz
- Visuelle Liste der gültigen und ungültigen Zeichen in XML 1.0
Verweise
- ^ "Extensible Markup Language (XML) 1.0 (vierte Ausgabe)". www.w3.org.
- ^ "Extensible Markup Language (XML) 1.1 (zweite Ausgabe)". www.w3.org.