如何在XML文档中的DOCTYPE声明中引用两个DTD文件?

时间:2015-03-18 16:08:55

标签: xml

是否可以在 DOCTYPE 声明中引用 两个DTD 文件 XML文档?

我是初学者并尝试使用 两个DTD 文件中的元素,以便我可以添加命名空间属性以唯一标识元素。

<?xml version="1.0" encoding="UTF-8" ?>
<Book xmlns="http://www.xmlws101.com/xmlns/book">
   <Title>Professional ASP.NET 2.0</Title>
   <Price>49.99</Price>
   <Year>2005</Year>
</Book>

<?xml version="1.0" encoding="UTF-8" ?>
<Author xmlns="http://www.xmlws101.com/xmlns/author">
   <Title>Mr.</Title>
   <FirstName>Bill</FirstName>
   <LastName>Evjen</LastName>
</Author>

其次,我只是不明白如何在单个XML文档中使用这两个<Title>标记?

作者说:
<Title>标记存在冲突。如果您同时使用这两个XML文件,您可以通过浏览它们来区分标记;但是计算机无法破译具有相同名称的两个标签之间的差异。

此问题的解决方案是为标记提供一个标识符,使计算机能够区分这两个标记。这是通过使用XML命名空间属性xmlns来完成的。

1 个答案:

答案 0 :(得分:1)

  

是否可以在XML文档的DOCTYPE声明中引用两个DTD文件?

没有

  

我是初学者并尝试使用两个DTD文件中的元素,以便我可以添加命名空间属性来唯一标识元素。

您需要引用单个DTD文件。

它可以包含其他DTD,但我认为它们需要设计为首先包含在那里(例如,请参阅modular XHTML)。

  

其次,我只是不明白如何在单个XML文档中使用这两个<Title>标记?

您需要将它们放入不同的namespaces。然后,您的文档将使用xmlns属性来描述每个元素来自哪个命名空间。