xs:string
xs:double, xs:float (except Nan, positive/negative infinity), xs:decimal or subtype
xs:double, xs:float, xs:decimal or subtype) is serialized as its lexical representation, i.e., is cast to xs:string, not surrounded by quotes. This corresponds to the JSON number notation, but with a few exceptions which must be fixed before serializing:
xs:boolean or subtype
xs:boolean is serialized as true or false, not surrounded by quotes.
js:null or subtype
js:null is serialized as null, not surrounded by quotes.
xs:string (i.e., as a JSON string).