Python 7.0pl5 Electronic Accessory User Manual


 
Mapping of Scalar Types
81
For the date and time types, the current Python implementation does not do any checking to determine
if the supplied values are valid, but will pass them as is. Note that the XML Schema Datatypes speci-
fication does allow for a timezone in a date and time, but it is recommended that all date and time val-
ues be sent as UTC. In the C++ library, only classes corresponding to Date and DateTime exist.
These are OTC_Date and OTC_Time.TheOTC_Time class is not able to handle timezones.
The only difference between the Binary type and using a string is that the value supplied via the Bi-
nary type, will be encoded internally using "base64" encoding when being passed around. This has
relevance because in XML most control characters are not permitted in string values. An XML imple-
mentation can also collapse a "\r\n" combination to just "\n". If such characters may appear in a
string, you should use the Binary type to ensure that they are preserved as is. Note that you do not
however have to encode the string using base64 encoding first as the internal implementation will do
this for you automatically.
Mapping of Scalar Types
When data is being serialised, the names attributed to scalar types derive from the XML Schema Da-
tatypes 2001 specification. The only exception to this is the None type, which notionally is passed
around internally with an empty type value. The mapping from Python types to those described in the
XML Schema Datatypes specification is as follows.
DateTime YYYY-MM-DDThh:mm:ss 2001-12-25T23:59:59
Time hh:mm:ss 23:59:59
Duration PnDTnHnMnS P1DT23H59M59S
Python Type Encodes To XML Type
string xsd:string
int xsd:int
long xsd:long
float xsd:double
netsvc.Boolean xsd:boolean
netsvc.Binary xsd:base64Binary
netsvc.Date xsd:date
netsvc.DateTime xsd:dateTime
Type Format Sample