我是新来的XML,我目前了解文档类型声明。无论如何,在DTD主体中声明元素时,元素名称必须与XML文档中的元素名称完全一样,包括任何名称空间前缀,这意味着用户无法定义自己的名称空间,但必须使用DTD中定义的前缀。
a)我认为即使我们必须使用在DTD中定义的前缀,我们仍然能够选择这些前缀指向哪些URI?
二)假设我们宣布(在DTD)的元素,其中个人是一个命名空间前缀,这是否意味着XML文档中该元素的所有匹配将需要包括一个前缀“个人”?如果是这种情况,那么这意味着使用DTD我们不能使用默认的命名空间功能?!
感谢名单
编辑:
一个)
真的,除非有一个特别好的理由,或者您有简单的语法要求并且不需要名称空间,否则应该考虑使用XML Schemas。
我确实计划使用XML Schema来代替,但我也想了解DTD的基础知识。
B)
...没有命名空间的URI(也无缺省的命名空间)的概念。
如果我们DTD中声明属性命名“的xmlns”:
<!ATTLIST contact xmlns CDATA #REQUIRED>
然后XML文档可以使用默认的命名空间功能(这里的子元素<name>
是默认的命名空间):
...
<contact xmlns=”www.somewhere.com” … >
<name></name>
</contact>
...
thanx
很好的建议。如果OP正在学习DTD,那么他可能会发现RELAX NG紧凑语法作为启蒙之路的下一步很熟悉。 – 2010-01-19 21:48:28
我很抱歉没有尽快回复,但我的电脑正在维修。无论如何,如果你找到时间...我已经编辑了我的初始文章回复你的回复 – SourceC 2010-01-25 20:27:30