XML代码转换为DTD代码

时间:2017-11-06 19:11:44

标签: xml dtd xml-dtd

下面给出了格式良好的XML代码,其中显示了大学计算机科学系不同课程的层次结构。我已将xml代码转换为dtd代码。哪里错了。

我的XML代码

var x = "mike^+tom&+craig+^tom";

var y = x.replace('^+', '+').replace('&+', '+').replace('+^', '+');

y = mike++tom++craig++tom; // This is the output

expected mike+tom+craig+tom;

我的DTD代码

<?xml version="1.0" encoding="UTF-8"?>

<University Name="Virtual University of Pakistan">
  <Departments>
         <Department name="Computer Science">
          <Courses>
            <Under-Graduate>
              <Course name="Introduction to Computing">CS101</Course>
              <Course name="Introduction to Programming ">CS201</Course>
              <Course name="Data Structures">CS301</Course>
              <Course name="Object Oriented Programming">CS304</Course>
              <Course name="Data Communication">CS601</Course>   
            </Under-Graduate>

            <Graduate>
              <Course name="Theory of Computation">CS701</Course>
              <Course name="Advanced Operating Systems">CS703</Course>
              <Course name="Software Quality Assurance">CS706</Course>
              <Course name="Distributed DBMS">CS712</Course>
              <Course name="Advanced Computer Networks">CS716</Course>
            </Graduate>     
          </Courses>
     </Department>
  </Departments>

我创建了一个XML代码并将该XML代码转换为DTD代码。那我的DTD代码在哪里错了。

1 个答案:

答案 0 :(得分:0)

您最初的问题是您生成的内容在语法上不是DTD。一个相关的问题是,它似乎在语义上也不是DTD。 (很难说清楚,因为XML规范没有为你提供的字符序列定义任何语义。)

您应该阅读XML DTD的教程简介。如果您正在课程中学习XML DTD(问题听起来像是家庭作业),也许您的教师可以推荐一个。也许你的导师已经这样做了,或提供了一个。如果你不在课程中,你可以在网上找到很多这样的教程。有些人偏爱Lou Burnard和我制作的“对XML的温和介绍”,但该文档的最新版本描述了Relax NG紧凑语法,而不是DTD,因此您需要找到旧版本。其中一个可以从The Cover Pages获得; DTD在该版本的1.4-1.7节中描述。​​

在阅读本教程时,请注意以下主题,这些主题将向您展示当前工作中出现的一些问题。

  • 对于给定的元素类型,一致的DTD可以声明多少个声明?
  • 使用什么关键字来声明元素类型的有效内容?
  • 使用什么语法声明有效内容?
  • 用于声明元素属性的关键字是什么?属性声明的语法是什么?
祝你好运。