2015-12-22 23 views
6

いくつかのXML要素からBase64文字列をデコードする必要があります。 type="xs:base64binary"で定義された要素とtype="xs:string"で定義された要素の間に違いはありますか?一部のXSD開発者は、コード化された文字列をbase64バイナリとしてマークすることを拒否します。違いがなければ、type="xs:base64binary"の使用は何ですか?XMLスキーマ。 Base64binary型vs String型

答えて

8

the specsが正しく理解されていれば、意味的な違いがあります。

base64Binary要素にはbase64でエンコードされた任意のバイナリデータが含まれており、基本的に文字列(または少なくとも文字列と互換性があります)になります。

一方、文字列には、通常は単語と文章(自然言語)を構成する印刷可能な文字が含まれています。特定の文字は使用できないため、任意の(バイナリ)データを含むことはできません。

base64Binaryを使用すると、デコードされたデータが人の消費に適していないことを示すことができます。stringは読み取り/印刷可能です。間違い

14

存在は、XSDでbase64Binarystringとの差である:

  • base64Binaryは、Base64でエンコードされたバイナリデータを表します。そのvalue spaceは、固定長のバイナリオクテットのセットです。その 字句空間はa-zA-Z0-9+/=、プラス whitespaceに限定されています。
  • stringは文字データを表す。そのvalue spaceは、charactersという有限長シーケンスのセットです。その語彙 のスペースは、XML charactersを構成することを超えて制約されていません。
関連する問題