XSD Simple Types

The translation of XSD simple types into ASN.1 types is straightforward; in most cases, a one-to-one mapping from XSD simple type to ASN.1 primitive type exists. The following table summarizes these mappings:

XSD Simple Type ASN.1 Type
anyURI UTF8String
base64Binary OCTET STRING
boolean BOOLEAN
byte INTEGER (-128..127)
date UTF8String
datetime UTF8String
decimal UTF8String
double REAL
duration UTF8String
ENTITIES SEQUENCE OF UTF8String
ENTITY UTF8String
float REAL
gDay UTF8String
gMonth UTF8String
gMonthDay UTF8String
gYear UTF8String
gYearMonth UTF8String
hexBinary OCTET STRING
ID UTF8String
IDREF UTF8String
IDREFS SEQUENCE OF UTF8String
integer INTEGER
int INTEGER (-2147483648..2147483647)
language UTF8String
long INTEGER (-9223372036854775808..9223372036854775807)
Name UTF8String
NCName UTF8String
negativeInteger INTEGER (MIN..-1)
NMTOKEN UTF8String
NMTOKENS SEQUENCE OF UTF8String
nonNegativeInteger INTEGER (0..MAX)
nonPositiveInteger INTEGER (MIN..0)
normalizedString UTF8String
positiveInteger INTEGER (1..MAX)
short INTEGER (-32768..32767)
string UTF8String
time UTF8String
token UTF8String
unsignedByte INTEGER (0..255)
unsignedShort INTEGER (0..65535)
unsignedInt INTEGER (0..4294967295)
unsignedLong INTEGER (0..18446744073709551615)

The C/C++ mappings for these types can be found in the section above on ASN.1 type mappings.