【问题标题】:Having Trouble Implementing A External DTD无法实现外部 DTD
【发布时间】:2014-07-15 01:34:09
【问题描述】:

编辑

我在实现 DTD 时遇到问题。我的 DTD 中不断出现错误提示:

"文档中根元素之前的标记必须格式正确。"

在我的 XML 文档中出现错误:

“文档类型声明包含或指向的标记声明必须格式正确。”

DTD

<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->


<!ELEMENT periodic-elements (periodic-element*)>
<!ELEMENT periodic-element (symbol, name, atomic-number, atomic_weight)>
<!ELEMENT symbol (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT atomic_number (#PCDATA)>
<!ELEMENT atomic_weight (#PCDATA)>

XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->

<!DOCTYPE periodic SYSTEM "C:\Users\Randy\Desktop\CMIS 170\Week 3\Homework 3\Homework3DTD.txt">
<periodic>
<element>  
  <symbol>FE</symbol> 
  <name>Iron</name> 
  <atomic_number>26</atomic_number>
  <atomic_weight>55.845</atomic_weight> 
</element>

<element>
  <symbol>Ir</symbol> 
  <name>Iridium</name> 
  <atomic_number>77</atomic_number>
  <atomic_weight>192.217</atomic_weight> 
</element>

<element>  
  <symbol>P</symbol> 
  <name>Phosphorus</name> 
  <atomic_number>15</atomic_number>
  <atomic_weight>30.973762</atomic_weight> 
</element>

<element>  
  <symbol>Uut</symbol> 
  <name>Ununtrium</name> 
  <atomic_number>113</atomic_number>
  <atomic_weight>284</atomic_weight> 
</element>

<element>  
  <symbol>Po</symbol> 
  <name>Polonium</name> 
  <atomic_number>84</atomic_number>
  <atomic_weight>209</atomic_weight> 
</element>
</periodic>

任何帮助将不胜感激。

【问题讨论】:

标签: xml external dtd


【解决方案1】:

您需要从 DTD 中删除 DOCTYPE 声明。

请参阅External referenced DTD in XML 以获得更好的解释。

您还需要在 XML 的 DOCTYPE 声明中将 elements 更改为 periodic。 DOCTYPE 声明中的名称必须与根元素的名称匹配。

编辑

您的 DTD 和 XML 中的名称并不完全匹配。例如,在您的 DTD 中有 periodic-elementsperiodic-element,但您的 XML 有 periodicelement

此外,您对 periodic-element 的声明引用了元素 atomic-number,但您的声明是 atomic_number

这是一个可以验证的版本。您应该可以从这里开始,然后随意修改它。

DTD

<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->


<!ELEMENT periodic-elements (periodic-element*)>
<!ELEMENT periodic-element (symbol, name, atomic_number, atomic_weight)>
<!ELEMENT symbol (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT atomic_number (#PCDATA)>
<!ELEMENT atomic_weight (#PCDATA)>

XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Sun Jul 06 07:25:48 AST 2014 -->

<!DOCTYPE periodic-elements SYSTEM "C:\Users\Randy\Desktop\CMIS 170\Week 3\Homework 3\Homework3DTD.txt">
<periodic-elements>
    <periodic-element>  
        <symbol>FE</symbol> 
        <name>Iron</name> 
        <atomic_number>26</atomic_number>
        <atomic_weight>55.845</atomic_weight> 
    </periodic-element>

    <periodic-element>
        <symbol>Ir</symbol> 
        <name>Iridium</name> 
        <atomic_number>77</atomic_number>
        <atomic_weight>192.217</atomic_weight> 
    </periodic-element>

    <periodic-element>  
        <symbol>P</symbol> 
        <name>Phosphorus</name> 
        <atomic_number>15</atomic_number>
        <atomic_weight>30.973762</atomic_weight> 
    </periodic-element>

    <periodic-element>  
        <symbol>Uut</symbol> 
        <name>Ununtrium</name> 
        <atomic_number>113</atomic_number>
        <atomic_weight>284</atomic_weight> 
    </periodic-element>

    <periodic-element>  
        <symbol>Po</symbol> 
        <name>Polonium</name> 
        <atomic_number>84</atomic_number>
        <atomic_weight>209</atomic_weight> 
    </periodic-element>
</periodic-elements>

【讨论】:

  • 好的,我用你告诉我的内容编辑了这篇文章,但我仍然遇到错误。我把错误放在我的编辑中。
猜你喜欢
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 2020-08-07
  • 1970-01-01
  • 2018-06-17
相关资源
最近更新 更多