Je travaille sur un schéma XML W3C (non écrit par moi). Un outil, xmllint, refuse d'utiliser le schéma:W3C XML Schema et l'entier maximum pour maxOccurs
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 est 2^32-1 donc, clairement, xmllint implémente des entiers avec nombre 32bits signé et cela ne suffit pas.
Est-ce que xmllint a raison? La norme ne semble pas limiter la taille des entiers:
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
L'espace de valeur de nonNegativeInteger est l'ensemble infini {0,1,2, ...}.
Ainsi, les développeurs sont censés utiliser des entiers infinis ...
Quelles sont les meilleures pratiques?
Les réalisateurs devraient-ils utiliser des bigints ou des objets similaires? (Dans ce cas, xmllint est erroné.)
auteurs de schémas devraient se limiter à des valeurs « raisonnables » pour maxOccurs? (Dans ce cas, je vais signaler le problème au schéma auteurs.)
Alors est-_ « 2147483647 » _ la valeur maximale que maxOccurs peut gérer? Quelle est la valeur maximale que maxOccurs peut gérer? @bortzmeyer – javaPlease42