2

我发现我在应用程序中使用的 xmldsig-core-schema.xsd 文件有一个标头,该标头在编组器实例化期间导致对 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...
4

1 回答 1

2

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

继续阅读,它期望:

  • 具有定义的 xmlns:ds 属性的架构元素,具有固定值
  • 用户定义的实体 dsig,应替换为http://www.w3.org/2000/09/xmldsig#
  • 两个参数实体,%p 和 %s,在遇到的地方被替换为空字符串。对于这两个,您必须查看 XMLSchema.dtd,并注意使用 %p 和 %s 实体,将命名空间前缀定义为 xs: in schema document; 在 dsig 案例中,作者更喜欢不使用前缀。
于 2012-04-17T20:15:31.387 回答