View Javadoc

1   /*******************************************************************************
2    * Copyright (c) 2010 LegSem.
3    * All rights reserved. This program and the accompanying materials
4    * are made available under the terms of the GNU Lesser Public License v2.1
5    * which accompanies this distribution, and is available at
6    * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
7    * 
8    * Contributors:
9    *     LegSem - initial API and implementation
10   ******************************************************************************/
11  package com.legstar.xsdc.gen;
12  
13  import java.util.HashMap;
14  
15  import javax.xml.namespace.QName;
16  
17  import com.legstar.coxb.CobolType;
18  
19  /**
20   * The type map associates XML Schema types with Cobol data items type
21   * candidates. This table is used as a hint and the actual Cobol data
22   * type might defer depending on other XML schema properties such as
23   * patterns for instance.
24   */
25  public class XsdCobolTypeMap extends HashMap < QName, CobolType > {
26  
27      /** Unique serial ID. */
28      private static final long serialVersionUID = 8249584897338839375L;
29  
30      /** XML Schema namespace. */
31      private static final String XSD_NS = "http://www.w3.org/2001/XMLSchema";
32  
33      /** Creates the type mapping. */
34      public XsdCobolTypeMap() {
35          super();
36          put(new QName(XSD_NS, "string"), CobolType.ALPHANUMERIC_ITEM);
37          put(new QName(XSD_NS, "boolean"), CobolType.BINARY_ITEM);
38          put(new QName(XSD_NS, "decimal"), CobolType.PACKED_DECIMAL_ITEM);
39          put(new QName(XSD_NS, "float"), CobolType.SINGLE_FLOAT_ITEM);
40          put(new QName(XSD_NS, "double"), CobolType.DOUBLE_FLOAT_ITEM);
41          put(new QName(XSD_NS, "date"), CobolType.ALPHANUMERIC_ITEM);
42          put(new QName(XSD_NS, "dateTime"), CobolType.ALPHANUMERIC_ITEM);
43          put(new QName(XSD_NS, "duration"), CobolType.ALPHANUMERIC_ITEM);
44          put(new QName(XSD_NS, "gDay"), CobolType.ALPHANUMERIC_ITEM);
45          put(new QName(XSD_NS, "gMonth"), CobolType.ALPHANUMERIC_ITEM);
46          put(new QName(XSD_NS, "gMonthDay"), CobolType.ALPHANUMERIC_ITEM);
47          put(new QName(XSD_NS, "gYear"), CobolType.ALPHANUMERIC_ITEM);
48          put(new QName(XSD_NS, "base64Binary"), CobolType.ALPHANUMERIC_ITEM);
49          put(new QName(XSD_NS, "hexBinary"), CobolType.OCTET_STREAM_ITEM);
50          put(new QName(XSD_NS, "QName"), CobolType.ALPHANUMERIC_ITEM);
51          put(new QName(XSD_NS, "NOTATION"), CobolType.ALPHANUMERIC_ITEM);
52          put(new QName(XSD_NS, "anyURI"), CobolType.ALPHANUMERIC_ITEM);
53          put(new QName(XSD_NS, "gYearMonth"), CobolType.ALPHANUMERIC_ITEM);
54          put(new QName(XSD_NS, "time"), CobolType.ALPHANUMERIC_ITEM);
55  
56          put(new QName(XSD_NS, "positiveInteger"), CobolType.BINARY_ITEM);
57          put(new QName(XSD_NS, "negativeInteger"), CobolType.BINARY_ITEM);
58          put(new QName(XSD_NS, "nonNegativeInteger"), CobolType.BINARY_ITEM);
59          put(new QName(XSD_NS, "nonPositiveInteger"), CobolType.BINARY_ITEM);
60          put(new QName(XSD_NS, "unsignedShort"), CobolType.BINARY_ITEM);
61          put(new QName(XSD_NS, "unsignedLong"), CobolType.BINARY_ITEM);
62          put(new QName(XSD_NS, "unsignedInt"), CobolType.BINARY_ITEM);
63          put(new QName(XSD_NS, "unsignedByte"), CobolType.ALPHANUMERIC_ITEM);
64          put(new QName(XSD_NS, "long"), CobolType.BINARY_ITEM);
65          put(new QName(XSD_NS, "short"), CobolType.BINARY_ITEM);
66          put(new QName(XSD_NS, "int"), CobolType.BINARY_ITEM);
67          put(new QName(XSD_NS, "byte"), CobolType.ALPHANUMERIC_ITEM);
68          put(new QName(XSD_NS, "token"), CobolType.ALPHANUMERIC_ITEM);
69          put(new QName(XSD_NS, "language"), CobolType.ALPHANUMERIC_ITEM);
70          put(new QName(XSD_NS, "NMTOKEN"), CobolType.ALPHANUMERIC_ITEM);
71          put(new QName(XSD_NS, "NMTOKENS"), CobolType.ALPHANUMERIC_ITEM);
72          put(new QName(XSD_NS, "ID"), CobolType.ALPHANUMERIC_ITEM);
73          put(new QName(XSD_NS, "IDREF"), CobolType.ALPHANUMERIC_ITEM);
74          put(new QName(XSD_NS, "ENTITY"), CobolType.ALPHANUMERIC_ITEM);
75          put(new QName(XSD_NS, "ENTITIES"), CobolType.ALPHANUMERIC_ITEM);
76          put(new QName(XSD_NS, "Name"), CobolType.ALPHANUMERIC_ITEM);
77          put(new QName(XSD_NS, "NCName"), CobolType.ALPHANUMERIC_ITEM);
78          put(new QName(XSD_NS, "normalizedString"), CobolType.ALPHANUMERIC_ITEM);
79          put(new QName(XSD_NS, "integer"), CobolType.BINARY_ITEM);
80      }
81  }