このサイトをビューするために JavaScript を有効化してください。

Altova StyleVision 2020 Enterprise Edition

XML 署名が XML ドキュメントに埋め込まれると、名前空間 http://www.w3.org/2000/09/xmldsig# 内にある Signature 要素が XML ドキュメントに追加されます。スキーマに対してドキュメントの妥当性を保持するためには、適切な宣言をスキーマに含める必要があります。 StyleVision では、Enveloped という方法で署名を埋め込むことができ、ルート(ドキュメント)要素以下にある最後の子要素として Signature 要素が作成されます。

 

XML ドキュメントのスキーマを修正したくない、またはできない場合、独立した外部ファイルとして XML 署名を作成することができます。詳細については、 XML 署名の設定内にある配置オプションの記述を参照ください。

 

Enveloped された署名の Signature 要素が許可される XML スキーマの例を以下に示します。スキーマの修正を行う際に、これらの例をガイドとして使用することができます。

 

以下に示される最初の例では、XML 署名スキーマがユーザーのスキーマへインポートされます。XML 署名スキーマは、以下のアドレスに配置されています:: http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

 

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

          xmlns:xsig="http://www.w3.org/2000/09/xmldsig#" 

           elementFormDefault="qualified" 

           attributeFormDefault="unqualified">

  <xs:import 名前空間="http://www.w3.org/2000/09/xmldsig#"

            schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>

   <xs:element name="Root">

      <xs:complexType>

         <xs:sequence>

            <xs:element ref="FirstChildOfRoot"/>

            <xs:element ref="SecondChildOfRoot" minOccurs="0"/>

            <xs:element ref="ThirdChildOfRoot" minOccurs="0"/>

            <xs:element ref="xsig:Signature" minOccurs="0"/>

         </xs:sequence>

      </xs:complexType>

   </xs:element>

   ...

</xs:schema>

 

以下に示される例ではワイルドカード要素を追加することで、その他の名前空間にある任意の要素がマッチするような修正が行われています。lax という値を processContents 属性に対してセットすることで、(マッチする要素宣言を見つけることができないため)この要素に対する検証がスキップされます。結果として、ユーザーは XML 署名スキーマへの参照を行う必要がなくなります。このオプションを使用する場合、(Signature 要素以外の)あらゆる要素を XML ドキュメント内にある所定の場所に挿入することが可能になってしまうという点に注意してください。

 

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 

           elementFormDefault="qualified" 

           attributeFormDefault="unqualified">

   <xs:element name="Root">

      <xs:complexType>

         <xs:sequence>

            <xs:element ref="selection"/>

            <xs:element ref="newsitems" minOccurs="0"/>

            <xs:element ref="team" minOccurs="0"/>

            <xs:any namespace="##other" minOccurs="0" processContents="lax"/>

         </xs:sequence>

      </xs:complexType>

   </xs:element>

   ...

</xs:schema>

 

W3C の仕様

XML 署名に関する詳細については、以下から XML 署名に関する W3C の仕様を参照ください: http://www.w3.org/TR/xmldsig-core/

 

 

 

 

(C) 2019 Altova GmbH