xml属性(タグ)の無効なユニコード文字のリストは何ですか?xml属性/タグの無効なユニコード文字
次のpython3コードが示すように:
import xml.etree.ElementTree as ET
from io import StringIO as sio
xml_dec = '<?xml version="1.1" encoding="UTF-8"?>'
unicode_text = '<root>textº</root>'
valid_unicode = '<标签 属性="值">文字</标签>'
invalid_unicode_attribute = '<tag attributeº="value">text</tag>'
invalid_unicode_tag = '<tagº>text</tagº>'
ET.parse(sio(xml_dec + unicode_text))
# works
ET.parse(sio(xml_dec + valid_unicode))
# works
ET.parse(sio(xml_dec + invalid_unicode_attribute))
# ParseError
ET.parse(sio(xml_dec + invalid_unicode_tag))
# ParseError
Unicode文字º
、すなわちU+00BA
それは要素テキストではなく、要素の属性またはタグである場合、構文解析することができます。一方、中国語などの他のユニコード文字は、要素属性とタグで解析できます。
私はhttps://validator.w3.org/checkでXML <?xml version="1.1" encoding="UTF-8"?><tagº>text</tagº>
をチェックし、それがエラーを与える:
Line 1, Column 43: character "º" not allowed in attribute specification list
しかし、XML Recommendation 1.1, §2.2 Charactersで、それはそれは許可されていると言う:
Char ::= [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
私の質問はどこ私ができる、ですXML属性/タグで無効なUnicode文字のリストを探しますか?タグに使用できる文字については
これは今の属性やタグ名についてですか?タイトルと最後の文章では属性について説明していますが、例はテキストとタグのみです。 – lenz
いずれにしても、自分がリンクしている文書の一部をスクロールするだけで済みます。たとえば、[ここ](https://www.w3.org/TR/xml11/#NT-NameStartChar)は、タグ名に使用できる文字の定義です。 – lenz
用語を理解していれば、そのような質問への回答が得やすくなります。タグの例です: ''。それは2つの名前(要素名と属性名)と、属性値、空白、等号、アポストロフィなどを含むさまざまなものを含んでいます。あなたの質問は、どの文字がタグに許されているのではなく、要素名と属性名に使用できます。 –