读书人

XML-为什么老是报错,该怎么解决

发布时间: 2012-05-04 12:36:09 作者: rapoo

XML---为什么老是报错
<?xml version="1.0" encoding="gb2312" ?>
<!DOCTYPE students [
<!ELEMENT students (student*) >
<!ELEMENT student (sex)>
<!ATTLIST student name CDATA #REQUIRED>
<!ATTLIST student id ID #REQUIRED>
<!ELEMENT sex (#PCDATA)>
]>
<students>
<student name="熊俊" id="123" >
<sex>男</sex>
</student>
<student name="萧蔷" id="124" >
<sex>女</sex>
</student>
</students>


红色地方为什么老是报错,ID类型的属性值,报错,说:不能id值不能以“1”开头,这是什么原因啊?

[解决办法]
ID类型的属性必须包含一个XML名称,而且该名称在文档中是独一无二的。ID属性可为元素分配一个唯一的标识符。

<!ATTLIST student id ID #REQUIRED>

由于数字不是合法的XML名称,所以ID编号不能以数字开头,解决办法是在前面加下划线或字母。

[解决办法]
The first character of an ID value must be a letter, '_', or ':'
http://xmlwriter.net/xml_guide/attlist_declaration.shtml
[解决办法]

探讨

ID类型的属性必须包含一个XML名称,而且该名称在文档中是独一无二的。ID属性可为元素分配一个唯一的标识符。

<!ATTLIST student id ID #REQUIRED>

由于数字不是合法的XML名称,所以ID编号不能以数字开头,解决办法是在前面加下划线或字母。

[解决办法]
楼上的正确 你讲代码改成
C# code
<?xml version="1.0" encoding="gb2312" ?><!DOCTYPE students [  <!ELEMENT students (student*) >  <!ELEMENT student (sex)>  <!ATTLIST student name CDATA #REQUIRED>  <!ATTLIST student id ID #REQUIRED>  <!ELEMENT sex (#PCDATA)>]><students>  <student name="熊俊" id="_23" >  <sex>男</sex>  </student>  <student name="萧蔷" id="_24" >  <sex>女</sex>  </student></students>
[解决办法]
探讨
引用:

ID类型的属性必须包含一个XML名称,而且该名称在文档中是独一无二的。ID属性可为元素分配一个唯一的标识符。

<!ATTLIST student id ID #REQUIRED>

由于数字不是合法的XML名称,所以ID编号不能以数字开头,解决办法是在前面加下划线或字母。


为什么 <student name="熊俊" id="123" >这个没报哪……

读书人网 >C#

热点推荐