IDE Issue 7 Existing Practice
From MemberWiki
The following table shows the available datatypes for some systems. For W3C specs, I looked at the datatypes found in some of the presentation-oriented languages, particularly HTML, DOM, CSS, and SVG.
| Datatype | Comment | JavaScript language | W3C specs | XSD Primitives Datatypes | JSON Schema | Google Gadgets |
|---|---|---|---|---|---|---|
| Datatypes found in JavaScript | ||||||
| string | - | Yes | Yes | Yes | Yes | Yes |
| number | - | Yes | Yes | Yes (presumably maps to a "double") | Distinguishes between "float" and "integer" | No |
| boolean | - | Yes | Yes | Yes | Yes | Yes (bool) |
| null | This may not be relevant to our discussion, but included here for completeness | Yes | No | ? (not sure) | No | No |
| undefined | This may not be relevant to our discussion, but included here for completeness | Yes | No | No | No | No |
| arrays | - | Yes | Yes (NodeList) | Via custom types, but not primitives types | Yes | Partially. There is a list type that is a list of strings, unlimited length and dynamically growing
|
| objects | - | Yes | Yes (elements) | Via custom types, but not primitives types | Yes | No |
| Datatypes in W3C specs (ignoring XML types(such as Element, Attribute, Node, NodeList, DOMImplementation, etc and things that are represented as objects) | ||||||
| void | For return values | No | Yes | No | No | No |
| DOMString | DUPLICATE - see "string" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| DOMObject | DUPLICATE - see "object" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| URI | DUPLICATE - see "anyURI" below | DUPE | DUPE | DUPE | DUPE | DUPE |
| qualifiedName | DUPLICATE - see "QName" below | DUPE | DUPE | DUPE | DUPE | DUPE |
| localName | tagnames in XML | No | Yes | No | No | No |
| long | DUPLICATE - see "integer" below | DUPE | DUPE | DUPE | DUPE | DUPE |
| number | DUPLICATE - see "number" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| color | - | No | Yes | No | No | No |
| length | From CSS. A number followed by a unit designator, for example "10px". | No | Yes | No | No | No |
| rect | From CSS and SVG | No | Yes | No | No | No |
| point | From SVG | No | Yes | No | No | No |
| Primitive datatypes in XML Schema | ||||||
| anyType | - | No | Yes | Yes | Yes | No |
| anySimpleType | - | No | No | Yes | No | No |
| string | DUPLICATE - see "string" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| boolean | DUPLICATE - see "boolean" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| base64Binary | - | No | No | Yes | No | No |
| hexBinary | - | No | No | Yes | No | No |
| float | Variation on "number" | No | No (just "number") | Yes | No ("float" probably means "double") | No |
| double | Variation on "number" | No | Yes | Yes | Yes ("float" probably means "double") | No |
| decimal | Variation on "number" | No | No | Yes | No | No |
| integer | Variation on "number" | No | Yes | Yes | Yes | No |
| nonPositiveInteger | Variation on "number" | No | No | Yes | No | No |
| long | Variation on "number" | No | No | Yes | No | No |
| nonNegativeInteger | Variation on "number" | No | No | Yes | No | No |
| negativeInteger | Variation on "number" | No | No | Yes | No | No |
| int | Variation on "number" | No | Yes | Yes | Yes | No |
| unsignedLong | Variation on "number" | No | No | Yes | No | No |
| positiveInteger | Variation on "number" | No | No | Yes | No | No |
| short | Variation on "number" | No | No | Yes | No | No |
| unsignedInt | Variation on "number" | No | No | Yes | No | No |
| byte | Variation on "number" | No | No | Yes | No | No |
| unsignedShort | Variation on "number" | No | No | Yes | No | No |
| unsignedByte | Variation on "number" | No | No | Yes | No | No |
| duration | Per ISO8601. For example, "P3Y6M" is a period of 3 years, 6 months. | No | Yes | Yes | No | No |
| datetime | For example, "2001-10-26T21:32:52" | No | No | Yes | No | No |
| time | - | No | Yes | Yes | No | No |
| date | - | No | Yes | Yes | No | No |
| gYearMonth | - | No | No | Yes | No | No |
| gYear | - | No | No | Yes | No | No |
| gMonthDay | - | No | No | Yes | No | No |
| gDay | - | No | No | Yes | No | No |
| gMonth | - | No | No | Yes | No | No |
| normalizedString | string cannot contain CR, LF or TAB | No | No | Yes | No | No |
| token | - | No | No | Yes | No | No |
| language | - | No | Yes | Yes | No | No |
| Name | - | No | ? | Yes | No | No |
| NCName | - | No | ? | Yes | No | No |
| NMTOKEN | - | No | Yes | Yes | No | No |
| NMTOKENS | - | No | Yes | Yes | No | No |
| ID | - | No | Yes | Yes | No | No |
| IDREF | - | No | Yes | Yes | No | No |
| IDREFS | - | No | ? | Yes | No | No |
| ENTITY | - | No | No | Yes | No | No |
| ENTITIES | - | No | No | Yes | No | No |
| ENTITY | - | No | No | Yes | No | No |
| anyURI | - | No | Yes | Yes | No | No |
| QName | - | No | Yes | Yes | No | No |
| NOTATION | - | No | No | Yes | No | No |
| Datatypes found in JSON Schema (from json.com) | ||||||
| string | DUPLICATE - see "string" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| integer | DUPLICATE - see "integer" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| float | DUPLICATE - see "float" above (presumably a double) | DUPE | DUPE | DUPE | DUPE | DUPE |
| boolean | DUPLICATE - see "boolean" above (presumably a double) | DUPE | DUPE | DUPE | DUPE | DUPE |
| object | DUPLICATE - see "object" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| array | DUPLICATE - see "array" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| any | DUPLICATE - see "anyType" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| Datatypes found in Google Gadgets | ||||||
| string | DUPLICATE - see "string" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| boolean | DUPLICATE - see "boolean" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| enum | - | No | Yes | - | No | Yes (of strings, each with a internal name and a display string) |
| hidden | - | - | - | - | - | Yes. Note that this isn't really a datatype. It is for properties that take a string value that will not appear in the preferences editor. |
| list | DUPLICATE - see "array" above | DUPE | DUPE | DUPE | DUPE | DUPE |
| location | No | No | No | No | No | Yes |
