2017-06-27 57 views
0

以下是我的问题陈述:文件错误过早结束,形成良好的XML文档

XYZ学校要对学生 和工作人员的详细信息存储在XML文件中。以下场景 有助于设计XML文档。人员将成为根标签。每个人的名字,年龄,性别,地址都将被输入。 一个人可以是学生或工作人员。学生将有rollno,标准和部分。如果工作人员,然后staffid和主题。 每个人都必须有一个地址,以下条目 - doorno,街道,城市和州。

我写的代码如下:

 <?xml version="1.0" encoding="UTF-8"?> 
     <!DOCTYPE persons 
[ 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT age (#PCDATA)> 
<!ELEMENT gender (#PCDATA)> 
<!ELEMENT address (doorno,street,city,state)> 
<!ELEMENT student (rollno,standard,section)> 
<!ELEMENT rollno (#PCDATA)> 
<!ELEMENT standard (#PCDATA)> 
<!ELEMENT section (#PCDATA)> 
<!ELEMENT staff (staffid,subject)> 
<!ELEMENT staffid (#PCDATA)> 
<!ELEMENT subject (#PCDATA)> 
<!ELEMENT doorno (#PCDATA)> 
<!ELEMENT street (#PCDATA)> 
<!ELEMENT city (#PCDATA)> 
<!ELEMENT state (#PCDATA)> 

]>

它使无错误异常:文件过早结束。我在XML方面很新,因此很难。帮助,将不胜感激

+0

哪个程序给出错误? – ceving

回答

0

我猜你正在使用检查您的文件是抱怨,它不是良好的,因为它没有一个根节点。在你的情况下,我期望根节点应该是人,因此添加<persons/>会给你一个格式良好的文档,尽管它不会有效。

您可以使用验证工具(如xmllint)来检查有效性。请参阅Is there a difference between 'valid xml' and 'well formed xml'?

尽管您已指定DTD的根节点是人员,但您并未实际定义人员或人员元素。一个例子可能会让你走上正确的道路。 https://www.w3schools.com/xml/xml_dtd_intro.asp

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE person [ 
<!ELEMENT person (student | staff)> 
<!ELEMENT staff EMPTY> 
<!ELEMENT student EMPTY> 
<!ATTLIST person name CDATA #REQUIRED age CDATA #REQUIRED> 
<!ATTLIST student rollno CDATA #REQUIRED> 
]> 
<person age="1" name="A"> 
<student rollno="20013456"/> 
</person> 
+0

谢谢Mic ..解决了它 – tron042

相关问题