私は W3C XML スキーマに取り組んでいます (私が書いたものではありません)。1 つのツール xmllint は、スキーマの使用を拒否します。
traceroute.xsd:658: element element: Schemas parser error : Element
'{http://www.w3.org/2001/XMLSchema}element', attribute 'maxOccurs': The value
'4294967295' is not valid. Expected is '(xs:nonNegativeInteger | unbounded)'.
4294967295 は 2^32-1 なので、明らかに、xmllint は符号付き 32 ビットの整数を実装していますが、これでは十分ではありません。
xmllint は正しいですか? 標準は明らかに整数のサイズを制限していません:
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html#p-max_occurs http://www.w3.org/TR/2004/REC-xmlschema-2-20041028 /datatypes.html#nonNegativeInteger
nonNegativeInteger の値空間は無限集合 {0,1,2,...} です。
したがって、実装者は無限整数を使用することになっています...
ベストプラクティスは何ですか?
実装者はbigintsまたは同様のものを使用する必要がありますか? (その場合、xmllint は間違っています。)
スキーマの作成者は、maxOccurs の「妥当な」値に制限する必要がありますか? (その場合は、スキーマの作成者に問題を報告します。)