1 /* 2 * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /** 27 * 28 * <p> 29 * Defines XML/Java Type Mappings. 30 * 31 * <p> 32 * This API provides XML/Java type mappings. 33 * 34 * <p> 35 * The following XML standards apply: 36 * 37 * <ul> 38 * <li><a href="http://www.w3.org/TR/xmlschema-2/#dateTime"> 39 * W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a> 40 * </li> 41 * <li><a href="http://www.w3.org/TR/xpath-datamodel#dt-dayTimeDuration"> 42 * XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a> 43 * </li> 44 * <li><a href="http://www.w3.org/TR/xpath-datamodel#dt-yearMonthDuration"> 45 * XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a> 46 * </li> 47 * </ul> 48 * 49 * <hr> 50 * 51 * <table class="striped"> 52 * <caption> W3C XML Schema/Java Type Mappings</caption> 53 * <thead> 54 * <tr> 55 * <th scope="col">W3C XML Schema Data Type</th> 56 * <th scope="col">Java Data Type</th> 57 * </tr> 58 * </thead> 59 * 60 * <tbody> 61 * <tr> 62 * <th scope="row">xs:date</th> 63 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 64 * </tr> 65 * <tr> 66 * <th scope="row">xs:dateTime</th> 67 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 68 * </tr> 69 * <tr> 70 * <th scope="row">xs:duration</th> 71 * <td>{@link javax.xml.datatype.Duration}</td> 72 * </tr> 73 * <tr> 74 * <th scope="row">xs:gDay</th> 75 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 76 * </tr> 77 * <tr> 78 * <th scope="row">xs:gMonth </th> 79 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 80 * </tr> 81 * <tr> 82 * <th scope="row">xs:gMonthDay</th> 83 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 84 * </tr> 85 * <tr> 86 * <th scope="row">xs:gYear</th> 87 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 88 * </tr> 89 * <tr> 90 * <th scope="row">xs:gYearMonth</th> 91 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 92 * </tr> 93 * <tr> 94 * <th scope="row">xs:time</th> 95 * <td>{@link javax.xml.datatype.XMLGregorianCalendar}</td> 96 * </tr> 97 * 98 * </tbody> 99 * </table> 100 * 101 * <hr> 102 * 103 * 104 * <table class="striped"> 105 * <caption>XQuery and XPath/Java Type Mappings</caption> 106 * <thead> 107 * <tr> 108 * <th scope="col">XQuery 1.0 and XPath 2.0 Data Model</th> 109 * <th scope="col">Java Data Type</th> 110 * </tr> 111 * </thead> 112 * 113 * <tbody> 114 * <tr> 115 * <th scope="row">xdt:dayTimeDuration</th> 116 * <td>{@link javax.xml.datatype.Duration}</td> 117 * </tr> 118 * <tr> 119 * <th scope="row">xdt:yearMonthDuration</th> 120 * <td>{@link javax.xml.datatype.Duration}</td> 121 * </tr> 122 * </tbody> 123 * </table> 124 * 125 * <hr> 126 * 127 * <p> 128 * W3C XML Schema data types that have a "<em>natural</em>" mapping to Java types are defined by 129 * JSR 31: Java™ Architecture for XML Binding (JAXB) Specification, Binding XML Schema to Java Representations. 130 * JAXB defined mappings for XML Schema built-in data types include: 131 * 132 * <ul> 133 * <li>xs:anySimpleType</li> 134 * <li>xs:base64Binary</li> 135 * <li>xs:boolean</li> 136 * <li>xs:byte</li> 137 * <li>xs:decimal</li> 138 * <li>xs:double</li> 139 * <li>xs:float</li> 140 * <li>xs:hexBinary</li> 141 * <li>xs:int</li> 142 * <li>xs:integer</li> 143 * <li>xs:long</li> 144 * <li>xs:QName</li> 145 * <li>xs:short</li> 146 * <li>xs:string</li> 147 * <li>xs:unsignedByte</li> 148 * <li>xs:unsignedInt</li> 149 * <li>xs:unsignedShort</li> 150 * </ul> 151 * 152 * @author Jeff Suttor 153 * @see <a href="http://www.w3.org/TR/xmlschema-2/#dateTime"> 154 * W3C XML Schema 1.0 Part 2, Section 3.2.7-14</a> 155 * @see <a href="http://www.w3.org/TR/xpath-datamodel#dt-dayTimeDuration"> 156 * XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration</a> 157 * @see <a href="http://www.w3.org/TR/xpath-datamodel#dt-yearMonthDuration"> 158 * XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration</a> 159 * @since 1.5 160 */ 161 162 package javax.xml.datatype;