Support 64-bit xs:integers on 32-bit platforms
When using xmllint --schema to validate an XML file with an XSD schema file, it generates the following error:
element X509SerialNumber: Schemas validity error : Element '{http://www.w3.org/2000/09/xmldsig#}X509SerialNumber': '35755224051600422829312585950238788449' is not a valid value of the atomic type 'xs:integer'.
This is the validation of xmldsig-core properties and this large number is the serial number of an X509 certificate, which can be 20 octets (49 digits) long. As far as I understand, XML does not have a limit on the integer size.
Part of the xmldsig schema is:
<complexType name="X509IssuerSerialType">
<sequence>
<element name="X509IssuerName" type="string"/>
<element name="X509SerialNumber" type="integer"/>
</sequence>
</complexType>
This error propagates to the Python lxml library that validates with libxml2.
Edited by Nick Wellnhofer