|
Thinking how to best represent a property's value as a Java class, I started working on the table below. Initially, my idea was that each literal type would map either directly to a core Java class, or in cases where an appropriate class didn't exist, would map to something we create (i.e. for xsd:decimal, we create a Decimal class which is basically a String restricted to the range of xsd:decimal.
I'm wondering though, if we maybe want to define a super-class or interface which has methods like
String getLexical(); // returns a lexical string representation of the value
getCanonical(); // returns the canonical string representation of the value
getValue(); // returns the underlying object holding the value (i.e. an Integer for xsd:int)
I'm still thinking about compound attributes. I assume all we need is a single interface which allows one to iterate over the sub-properties of the compound value, where each sub-property is either a literal or compound itself.
Any concerns/comments so far?
| xsd:string |
String |
| xsd:normalizedString |
String |
| xsd:boolean |
Boolean |
| xsd:decimal |
TODO: need class |
| xsd:float |
Float |
| xsd:double |
Double |
| xsd:integer |
TODO: need class |
| xsd:nonNegativeInteger |
TODO: need class |
| xsd:positiveInteger |
TODO: need class |
| xsd:nonPositiveInteger |
TODO: need class |
| xsd:negativeInteger |
TODO: need class |
| xsd:long |
Long |
| xsd:int |
Integer |
| xsd:short |
Short |
| xsd:byte |
Byte |
| xsd:unsignedLong |
|
| xsd:unsignedInt |
|
| xsd:unsignedShort |
|
| xsd:unsignedByte |
|
| xsd:hexBinary |
TODO: need class |
| xsd:base64Binary |
TODO: need class |
| xsd:dateTime |
|
| xsd:time |
|
| xsd:date |
|
| xsd:gYearMonth |
|
| xsd:gYear |
|
| xsd:gMonthDay |
|
| xsd:gDay |
|
| xsd:gMonth |
|
| xsd:anyURI |
|
| xsd:token |
|
| xsd:language |
|
| xsd:NMTOKEN |
|
| xsd:Name |
|
| xsd:NCName |
| |