Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
0.6
-
None
Description
The XML type of metadata and CRS properties could be declared more accurately by adding the XmlShemaType annotation where appropriate. Examples:
@XmlSchemaType(name = "positiveInteger") private Integer integerValue; @XmlSchemaType(name = "anyURI") private String valueFile; @XmlSchemaType(name="date") public XMLGregorianCalendar date;
The easiest way to find where this annotation is missing is to search for the "xs: string in XSD files. Some data types in use are: anyURI, boolean, date, dateTime, decimal, double, integer, negativeInteger, nonNegativeInteger, nonPositiveInteger, positiveInteger and string. But we probably do not need to declare all of them. In particular we should be okay to not repeat the default mapping:
Java Data Type | XML Schema Data Type |
---|---|
boolean | boolean |
byte | byte |
short | short |
int | int |
long | long |
float | float |
double | double |
java.math.BigInteger | integer |
java.math.BigDecimal | decimal |
java.util.Date | dateTime |
java.util.Calendar | dateTime |
javax.xml.datatype.XMLGregorianCalendar | anySimpleType |
javax.xml.datatype.Duration | duration |
java.lang.String | string |
java.net.URI | string |
java.util.UUID | string |
java.lang.Object | anyType |
javax.xml.namespace.QName | Qname |
java.awt.Image | base64Binary |
javax.activation.DataHandler | base64Binary |
javax.xml.transform.Source | base64Binary |
Note that @XmlSchemaType annotations are rarely applied on the public class like Metadata implementations, because the properties of those classes are themselves wrapped in other properties (e.g. GO_Decimal). The target for @XmlSchemaType is rather (usually) the internal classes used as wrappers.
Attachments
Issue Links
- relates to
-
SIS-159 Complete JAXB annotations for CRS objects
- Closed