Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSD开头的DOCTYPE头的用途是什么_Xsd - Fatal编程技术网

XSD开头的DOCTYPE头的用途是什么

XSD开头的DOCTYPE头的用途是什么,xsd,Xsd,我发现我在应用程序中使用的xmldsig-core-schema.xsd文件有一个标头,在marshaller实例化过程中导致了对w3.org的HTTP请求,我删除了这个标头,现在我想知道它是否会对XML文档的验证产生任何影响。我熟悉在HTML或XML文档上使用doctype,但在XSD文件上使用doctype的目的是什么 xsd可从以下网址获得: 有问题的片段是: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE schema

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

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...

]>

XSD文件只是另一个XML文件。因此,它的作用与您所熟悉的其他实例相同

继续阅读,它期望:

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

    • XSD文件只是另一个XML文件。因此,它的作用与您所熟悉的其他实例相同

      继续阅读,它期望:

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

      我仍然不明白为什么不使用XMLSchema.xsd来定义xsd的模式类型,或者为什么作者需要定义您提到的那些规则,您能告诉我删除此标题是否会对该模式的XML实例的验证产生任何影响吗?对任何XML实例文档都没有影响。XMLSchema.xsd是该模式的模式;然而,它确实依赖于DTD来完成某些事情,您提到的DTD是“ammending”。但是,这与模式编写风格(例如,不使用前缀)有更多关系,并且对XML没有影响。如果我可以这样说的话,这是“非常正确的”。严格地说,使用模式的模式、使用处理DTD的验证器对XSD文件进行的任何验证都可能会抱怨使用了除xs:prefix之外的其他,尽管我们知道前缀的选择是任意的,但我仍然不明白为什么不使用XMLSchema.xsd来定义xsd的模式类型,或者为什么作者需要定义您提到的那些规则,您能告诉我删除此标题是否会对该架构的XML实例的验证产生任何影响吗?对任何XML实例文档都没有影响。XMLSchema.xsd是该模式的模式;然而,它确实依赖于DTD来完成某些事情,您提到的DTD是“ammending”。但是,这与模式编写风格(例如,不使用前缀)有更多关系,并且对XML没有影响。如果我可以这样说的话,这是“非常正确的”。严格地说,使用模式的模式、使用处理DTD的验证器对XSD文件进行的任何验证都可能会抱怨使用了除xs:prefix之外的其他前缀,尽管我们知道前缀的选择是任意的。