回答:
違いは次のとおりです。
xs:int
は、符号付き32ビット整数です。
xs:integer
整数の無制限の値です。詳細については、https://web.archive.org/web/20151117073716/http:
//www.w3schools.com/schema/schema_dtypes_numeric.asp を参照してください。たとえば、XJC(Java)はInteger
、xs:int
およびBigInteger
に対して生成されxs:integer
ます。
一番下の行:xs:int
クロスプラットフォームで作業したい場合に使用し、あなたの番号が問題なく通過することを確認してください。より大きな数値が必要な場合-のxs:long
代わりに使用しますxs:integer
(生成されるのはLong
)。
XS:整数 fractionDigitsをゼロにし、そうでなければ法的あろう小数点と末尾のゼロを禁止字句空間で設定ファセットと、小数:タイプは、xsの制限です。最小値または最大値はありませんが、有限サイズのマシンで実行される実装は、任意の大きい値または小さい値を受け入れることができる必要はありません。(16桁の16進数の値をサポートするために必要です。)
XS:int型のタイプは、xsの制限である:長い間、-2147483648に2147483647にmaxInclusiveをファセットセットとのminInclusiveファセットと。(ご覧のとおり、2つの補数の32ビット符号付き整数フィールドに都合よく収まります。xs:longは64ビット符号付き整数フィールドに適合します。)
通常のルールは、言いたいことと一致するものを使用することです。要素または属性の制約が、その値が整数でなければならないことである場合、xs:integerはそれを簡潔に述べます。値が2の補数表現で最大32ビットで表現できる整数でなければならないという制約がある場合は、xs:intを使用します。(もう1つの重要な問題は、ツールチェーンが他のツールチェーンよりもうまく機能するかどうかです。ツールチェーンよりも長く存続するデータの場合、最初にデータをリッスンすることをお勧めします。ツールにフィードするためだけに存在するデータの場合ツールチェーンを変更しても意味がありません。ツールチェーンをリッスンしない理由はありません)。
一部の人々にとって重要である可能性があるペダントリのメモを追加します。xs:intが符号付き32ビット整数であると言うのは正しくありません。その形式の単語は、バイナリデジタルコンピュータ内のメモリ(またはレジスタなど)での実装を意味します。XMLは文字ベースであり、最大32ビットの符号付き値を "2147483647"(もちろん引用符)として実装します。これは32ビットよりもはるかに多くなります。xs:intは(間接的に)xs:integerの制限であり、許可される最大値と最小値を、符号ビットを含む32ビット整数の対応する実装によって課される制限と同じに設定します。
, but not
xs:int`またはのみをサポートしxs:long
ます。