【问题标题】:Additional tag is coming in XML, which is not declared in DTDXML 中出现了额外的标签,但在 DTD 中没有声明
【发布时间】:2013-01-15 18:19:02
【问题描述】:

我是 XML 新手。我正在尝试使用这个 XML:

<?xml version="1.0"?>
<!DOCTYPE person [
  <!ELEMENT first_name (#PCDATA)>
  <!ELEMENT last_name  (#PCDATA)>
  <!ELEMENT profession (#PCDATA)>
  <!ELEMENT name       (first_name, last_name)>
  <!ELEMENT person     (name, profession*)>
]>
<person>
  <name>
    <first_name>Alan</first_name>
    <last_name>Turing</last_name>
  </name>
  <profession>computer scientist</profession>
  <profession>mathematician</profession>
  <job>cryptographer</job>
</person>

由于标签不存在,我在打开 XML 文件时没有在浏览器上出现错误。 请帮助我理解这一点。提前致谢。

【问题讨论】:

  • 你到底有什么不明白的? XML中有“job”,“doctype”之后的定义中没有“job”。我实际上不知道这些都是什么,但我看到了错误;)
  • 好的,让我们简化一下 - 如果我将 标记错误地键入为 ,那么这个 XML 应该会给出错误,这不会像预期的那样出现。

标签: xml dtd


【解决方案1】:

我使用 IE 打开这个 xml 并且没有错误。然后使用w3validator 对其进行验证。收到一个错误和两个警告:

警告:

--文档级别没有声明字符编码

--使用直接输入模式:假定UTF-8字符编码

错误:

--元素“工作”未定义 密码学家 ✉ 您在文档中使用了上述元素,但您使用的文档类型未定义该名称的元素。此错误通常由以下原因引起:

在使用框架的文档中不正确地使用“Strict”文档类型(例如,您必须使用“Frameset”文档类型来获取“”元素), 通过使用供应商专有扩展,例如“”或“”(这通常通过使用 CSS 来解决,以实现所需的效果)。 通过在 XHTML 中使用大写标签(在 XHTML 中属性和元素必须全部小写)。

【讨论】:

    猜你喜欢
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2016-01-18
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多