2

アプリケーションで使用していたxmldsig-core-schema.xsdファイルに、マーシャラーのインスタンス化中にw3.orgへのHTTPリクエストを引き起こすヘッダーが含まれていることがわかりました。このヘッダーを削除しましたが、このヘッダーを使用できるかどうか疑問に思っています。 XMLドキュメントの検証に影響します。HTMLまたはXMLドキュメントでのDOCTYPESの使用に精通していますが、XSDファイルでのDOCTYPESの目的は何ですか?

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属性を持つスキーマ要素
  • http://www.w3.org/2000/09/xmldsig#に置き換える必要があるユーザー定義のエンティティdsig
  • 2つのパラメータエンティティ%pと%sは、検出された場合は空の文字列に置き換えられます。これら2つについては、XMLSchema.dtdを確認し、%pエンティティと%sエンティティを使用して、名前空間プレフィックスをxsとして定義する必要があります。dsigの場合、作成者はプレフィックスを使用しないことを好みました。
于 2012-04-17T20:15:31.387 に答える