当前位置: 首页 > 知识库问答 >
问题:

生成格式良好的XML文档时出现过早的文件结束错误

湛光明
2023-03-14

以下是我的问题陈述:

XYZ学校希望将学生和教职员工的详细信息存储在xml文件中。以下场景有助于设计XML文档。persons将是根标签。每个人都有姓名、年龄、性别、地址的条目。一个人可以是学生也可以是教职员工。学生将有rollno、standard和section。如果是工作人员,则标记和主题。每个人都必须有一个带有以下条目的地址-门牌号、街道、城市和州。

我写的代码如下:

      <?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非常陌生,因此很难理解。我们将不胜感激

共有1个答案

鲍向笛
2023-03-14

我猜无论您使用什么来检查文档,都会抱怨文档的格式不好,因为它没有根节点。在您的情况下,我希望根节点应该是persons,因此添加

您可以使用xmllint之类的验证工具来检查有效性。请参阅“有效xml”和“格式良好的xml”之间是否存在差异?

尽管您已经指定DTD的根节点是persons,但实际上还没有定义persons或person元素。一个例子可能会让你走上正确的道路。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>

 类似资料:
  • 问题内容: 我一直在使用JDOM库通过Java Servlet读写XML文件。 问题是,当我使用AJAX向要在XML文件中读写数据的Servlet发送许多请求时,它多次无法显示错误:文件过早结束。如何将所有这些读/写同步到文件,或者是否有其他方法可以防止这些问题?让我知道是否需要更多详细信息。 在这种情况下,使用线程有好处吗? 非常感谢! 问题答案: 两种可能的解决方案是: 将您的文件写入then

  • 我对“文件过早结束”感到非常奇怪。我们的一个服务器上最近几天的异常。同样的配置XML在另一台服务器上也能正常工作。我们在这两个服务器上都使用Tomcat5.0.28。这个代码已经工作了很长时间(7+年),只是在最近的服务器崩溃后,我们在其中一个服务器上面临这个问题。XML和Java解析代码没有变化。:( 我能看到的唯一区别是在Java版本中-

  • 我正试图基于封送的xml和xslt以及一些问题生成outFile。 这段代码从对象生成xml流。 此方法生成以xml作为输入的输出文件 运行代码时,我得到TransformerExcema: 输入xml和xslt都会在在线工具中产生预期的输出-http://www.utilities-online.info/xsltransformation. 这段代码在控制台中提供了正确的xml文件。 在这个问

  • 问题内容: 我收到非常奇怪的“文件过早结束”。我们的一台服务器上最近几天的异常。在 相同的 XML配置在另一台服务器上的罚款。我们在这两台服务器上都使用Tomcat 5.0.28。这段代码已经使用了7年以上,直到最近的服务器崩溃后,我们才在其中一台服务器上遇到此问题。XML和Java解析代码没有变化。:( 我唯一看到的区别是Java版本- 问题服务器 Java版本“ 1.6.0_16” Java

  • 我目前有以下文件。 http://www.cse.unsw.edu.au/~cs9321/14s1/assignments/musicDb.xml 我的类。 } 我在另一个类中创建了一个对象并调用,但我一直收到上述错误。 有人知道问题出在哪里吗? 谢谢你的帮助。

  • 我正在创建一个XML验证器,它将根据特定的模式验证XML。我当前正在使用OASIS模式验证针对该模式的断言。下面是模式,当它被传递给SchemaFactory并且模式对象被创建时,xenc:encryptedData元素未被解析,该元素存在于导入的模式xenc-schema.xsd中。“ 并且当我创建SchemaFactory的实例并尝试加载模式时,它无法定位在上述模式中导入的模式: 当创建模式对