2

次の XML を検証しようとすると、次のようになります。

 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="#Id-6fa82551-828a-4d41-ab07-02f6887e32a1">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>YZR2p1r5yr4m5vO3ZiK51UCt0n4=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>aPY/qeVV5nNCidTlEfB2uiUdg6UtRwRa2/Eqtmcg89P2RkIYl+n+WJ9LbnleGnLwvn8PDe24cRZqxesIFZEs4hVdzxFpFiMVLNaP4etER/k9fzZmcDS8OxtPgkRst6dS2hf2HJA3B2BCpMMCvSb2UAuTGMZAKFeLdfFZiFgCFm08iGLBQ54xML26f0vaOHLoF5fa0XPMq3OkAKwSHw9/mzpzUFGaaIdzj/qiHKJy5uxLEjMt4/FSu44rEHAxziHnyBo7CYsRK1SvwYUhxDEU+TqBOGvFTUqh8qCWzKkhgURjq5gwWd2qYrV7AXkcs5fXXxBH8w9Mnx7C1GHk05ssNQ==</SignatureValue>
    <KeyInfo>
        <X509Data>
          <X509IssuerSerial>
            <X509IssuerName>CN=sbsp3800jcc.office.sbs</X509IssuerName>
            <X509SerialNumber>153921637767027919309545657592381534070</X509SerialNumber>
          </X509IssuerSerial>
        </X509Data>          
    </KeyInfo>
</Signature>

xmldsig-core-schema.xsdスキーマ (インターネットで簡単に見つけることができます) に対して、次の検証エラーが発生します。

Validation of current file using XML schema:


ERROR: Element '{http://www.w3.org/2000/09/xmldsig#}X509SerialNumber': '153921637767027919309545657592381534070' is not a valid value of the atomic type 'xs:integer'.

ただし、インターネットで見つけた多くの投稿により、 xs:integer タイプは無制限の文字数をサポートする必要があると思いました。それで、私の検証は間違った動作をしていますか? 私は現在、2 つの異なる検証手法を試しました。1 つ目は .NET System.Xml ライブラリ (XmlReader)、2 つ目は Notepad++ 用の XML プラグインです。どちらも同じメッセージで失敗します。どちらも間違っていますか?または、実際には xs:integer 値が取り得るサイズに制限がありますか?

4

1 に答える 1