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.