在XSD开始时DOCTYPE标头的用途是什么

时间:2012-04-17 16:10:10

标签: xsd

我发现我在我的应用程序中使用的xmldsig-core-schema.xsd文件有一个标题,在marshaller实例化期间导致向w3.org发出HTTP请求,我删除了这个标题,现在我想知道它是否存在可以对XML文档的验证产生任何影响。我熟悉在HTML或XML文档上使用DOCTYPES,但它在XSD文件中的用途是什么?

xsd位于:http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

有问题的摘录是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd" [
   <!ATTLIST schema 
     xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
   <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
   <!ENTITY % p ''>
   <!ENTITY % s ''>
  ]>
<!-- Schema for XML Signatures ...
-->
<schema...

1 个答案:

答案 0 :(得分:1)

XSD文件只是另一个XML文件。因此,它与您提到的熟悉的其他情况一样。

请继续阅读,预计:

  • schema元素,具有定义的xmlns:ds属性,具有固定值
  • 用户定义的实体dsig,应替换为http://www.w3.org/2000/09/xmldsig#
  • 两个参数实体%p和%s,用遇到的空字符串替换。对于这两个,您必须查看XMLSchema.dtd,并注意使用%p和%s实体,在架构文档中将名称空间前缀定义为xs:;在dsig案例中,作者倾向于不使用前缀。