.net - xml 标签可以由整数值组成还是可以包含特殊字符?

标签 .net xml

例如。 这些 xml 标签是否可接受。

<xml>
<3333>abc</3333>
<ab#$3>def</ab#$3>
</xml>

我的问题是我可以创建整数值标签或带有特殊字符的标签吗?

我试过了

FileStream fs = new FileStream((filename), FileMode.Append);
XmlWriter w = XmlWriter.Create(fs);
w.WriteStartElement("3454");

并出现以下错误 {System.ArgumentException:“3454”中的名称字符无效。名称中不能包含“3”字符(十六进制值 0x33)。 在 System.Xml.XmlWellFormedWriter.CheckNCName(String ncname) 在System.Xml.XmlWellFormedWriter.WriteStartElement(字符串前缀,字符串本地名称,字符串ns) 在 System.Xml.XmlWriter.WriteStartElement(String localName) 在WindowsFormsApplication1.Form1.fn_setMapping(SqlString keyString,SqlString列,SqlString值)

谢谢

最佳答案

XML 元素名称不能以数字开头,因此 <3333>无效。

至于哪些特殊字符有效...请参阅 spec for element names .

NameStartChar      ::=      ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
NameChar       ::=      NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Name       ::=      NameStartChar (NameChar)*

有效的名称应以 NameStartChar 开头后跟任意数量的 NameChar

关于.net - xml 标签可以由整数值组成还是可以包含特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534796/

相关文章:

c# - SQL 唯一键插入

c# - 如何从 ChangeTracker 获取原始实体

.net - 使用不安全代码的含义是什么

xml - getNodeValue() 返回 null,尽管响应 xml 持有者不返回 null

java - 没有 child 的根元素。日本航空航天局

使用 simpleXML 解析 php xml

.net - 为什么 C# Google.Cloud.Firestore 库无法连接到企业 MITM 防火墙?

.net - 使用 string[] 进行 Hash.Remove 时出现异常

xml - 将 xml 存储在 json 对象中

php - 如何使用 PHP 加载 xml 文件?