1
package org.hisp.dhis.importexport.dhis14.xml.converter.xsd;
4
* Copyright (c) 2004-2007, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* * Neither the name of the HISP project nor the names of its contributors may
15
* be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
import org.amplecode.staxwax.writer.XMLWriter;
31
import org.hisp.dhis.importexport.XMLConverter;
34
* @author Lars Helge Overland
35
* @version $Id: AbstractXSDConverter.java 6455 2008-11-24 08:59:37Z larshelg $
37
public abstract class AbstractXSDConverter
38
implements XMLConverter
40
protected void writeAnnotation( XMLWriter writer )
42
writer.openElement( "xsd:annotation" );
44
writer.writeElement( "xsd:appinfo", "" );
46
writer.closeElement();
49
protected void writeInteger( XMLWriter writer, String name, int minOccurs, boolean nonNullable )
51
String nonNull = nonNullable ? "yes" : "no";
53
writer.writeElement( "xsd:element", "", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "integer", "od:sqlSType", "smallint", "od:nonNullable", nonNull, "type", "xsd:short" );
56
protected void writeLongInteger( XMLWriter writer, String name, int minOccurs, boolean nonNullable )
58
String nonNull = nonNullable ? "yes" : "no";
60
writer.writeElement( "xsd:element", "", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "longinteger", "od:sqlSType", "int", "od:nonNullable", nonNull, "type", "xsd:int" );
63
protected void writeDouble( XMLWriter writer, String name, int minOccurs, boolean nonNullable )
65
String nonNull = nonNullable ? "yes" : "no";
67
writer.writeElement( "xsd:element", "", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "double", "od:sqlSType", "float", "od:nonNullable", nonNull, "type", "xsd:double" );
70
protected void writeDateTime( XMLWriter writer, String name, int minOccurs, boolean nonNullable )
72
String nonNull = nonNullable ? "yes" : "no";
74
writer.writeElement( "xsd:element", "", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "datetime", "od:sqlSType", "datetime", "od:nonNullable", nonNull, "type", "xsd:dateTime" );
77
protected void writeText( XMLWriter writer, String name, int minOccurs, boolean nonNullable, int length )
79
String nonNull = nonNullable ? "yes" : "no";
81
writer.openElement( "xsd:element", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "text", "od:sqlSType", "nvarchar", "od:nonNullable", nonNull );
83
writer.openElement( "xsd:simpleType" );
85
writer.openElement( "xsd:restriction", "base", "xsd:string" );
87
writer.writeElement( "xsd:maxLength", "", "value", String.valueOf( length ) );
89
writer.closeElement();
91
writer.closeElement();
93
writer.closeElement();
96
protected void writeMemo( XMLWriter writer, String name, int minOccurs, boolean nonNullable, int length )
98
String nonNull = nonNullable ? "yes" : "no";
100
writer.openElement( "xsd:element", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "memo", "od:sqlSType", "ntext", "od:nonNullable", nonNull );
102
writer.openElement( "xsd:simpleType" );
104
writer.openElement( "xsd:restriction", "base", "xsd:string" );
106
writer.writeElement( "xsd:maxLength", "", "value", String.valueOf( length ) );
108
writer.closeElement();
110
writer.closeElement();
112
writer.closeElement();
115
protected void writeUrl( XMLWriter writer, String name, int minOccurs, int length )
117
writer.openElement( "xsd:element", "name", name, "minOccurs", String.valueOf( minOccurs ), "od:jetType", "hyperlink", "od:sqlSType", "ntext", "od:hyperlink", "yes" );
119
writer.openElement( "xsd:simpleType" );
121
writer.openElement( "xsd:restriction", "base", "xsd:string" );
123
writer.writeElement( "xsd:maxLength", "", "value", String.valueOf( length ) );
125
writer.closeElement();
127
writer.closeElement();
129
writer.closeElement();