Project

General

Profile

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2
<!--NewPage-->
3
<html>
4
<head>
5
<!-- Generated by javadoc on Fri Sep 24 03:23:03 CEST 1999 -->
6
<title>
7
  Class de.tudarmstadt.ito.xmldbms.mapfactories.MapFactory_DTD
8
</title>
9
</head>
10
<body>
11
<a name="_top_"></a>
12
<pre>
13
<a href="packages.html">All Packages</a>  <a href="tree.html">Class Hierarchy</a>  <a href="Package-de.tudarmstadt.ito.xmldbms.mapfactories.html">This Package</a>  <a href="Package-de.tudarmstadt.ito.xmldbms.mapfactories.html">Previous</a>  <a href="de.tudarmstadt.ito.xmldbms.mapfactories.MapFactory_MapDocument.html#_top_">Next</a>  <a href="AllNames.html">Index</a></pre>
14
<hr>
15
<h1>
16
  Class de.tudarmstadt.ito.xmldbms.mapfactories.MapFactory_DTD
17
</h1>
18
<pre>
19
java.lang.Object
20
   |
21
   +----de.tudarmstadt.ito.xmldbms.mapfactories.MapFactory_DTD
22
</pre>
23
<hr>
24
<dl>
25
  <dt> public class <b>MapFactory_DTD</b>
26
  <dt> extends Object
27
</dl>
28
Create a Map from a DTD object.
29
 <p>MapFactory_DTD constructs tables and columns in which the element types
30
 and attributes described in the DTD object can be stored, then creates
31
 a Map that maps the element types and attributes to these tables and
32
 columns. The resulting Map cannot be used immediately with DBMSToDOM or
33
 DOMToDBMS because no connection has been set on it. Furthermore, it is
34
 possible that the tables referred to by the map don't yet exist. However,
35
 it can be serialized as a mapping document or used to generate CREATE
36
 TABLE statements.</p>
37
 <P>For example, the following code creates a map from the DTD document.dtd,
38
 creates the tables, sets the connection, and then transfers data to the
39
 database:</P>
40
 <pre>
41
    // Instantiate a new map factory and create a map.
42
    factory = new MapFactory_DTD();
43
    map = factory.createMapFromDTD(src, MapFactory_DTD.DTD_EXTERNAL, true, null);<br />
44
   // Create the tables used by the map. Note that this function calls
45
   // Map.getCreateTableStrings(), then executes each string in a
46
   // JDBC Statement.
47
   createTables(map);<br />
48
   // Set the database connection, then transfer the data to the database.
49
   map.setConnection(conn);
50
   domToDBMS = new DOMToDBMS(map);
51
   domToDBMS.storeDocument(doc);
52
 </pre>
53
 <p>MapFactory_DTD constructs tables and columns roughly as follows. Note
54
 that these tables and columns are not actually created in the database;
55
 to do this, the application must retrieve CREATE TABLE strings from
56
 the resulting Map and execute these in JDBC statements. The reason for
57
 this is that applications will commonly want to change the table structure
58
 predicted by MapFactory_DTD before actually creating tables or simply
59
 use this factory as a tool for creating Maps, which can be serialized
60
 with the Map.serialize() method.</p>
61
 <ul>
62
 <li>For each element type that has attributes or child elements, a table
63
 is generated. In this table are an ID column, one column for each
64
 single-valued attribute, one column for each singly-occurring child
65
 element type that contains only PCDATA and has no attributes, an (optional)
66
 order column for each child element type column, and one ID column for each
67
 parent element type. If the element type has attributes and PCDATA but
68
 no child element types, then there is also a column for its PCDATA. Note
69
 that the ID column appears only if needed to link to a child table.</li>
70
 <li>If an attribute is multi-valued (IDREFS, NMTOKENS, or ENTITIES), it
71
 is stored in a separate table, with an element type ID column, a value
72
 column, and an (optional) order column.</li>
73
 <li>If a child element type that contains only PCDATA and has no attributes
74
 can occur multiple times in its parent, it is stored in a separate table,
75
 with a parent element type ID column, a value column, and an
76
 (optional) order column.</li>
77
 <li>Except as noted above, PCDATA is stored in a separate table with an
78
 element type ID column, a value column, and an (optional) order column.</li>
79
 <li>The code also guesses at what the legal root element types are. An
80
 element type is considered to be a root if it has no parents. If all
81
 element types have parents, then all element types are made legal roots.</li>
82
 </ul>
83
 <p><b>WARNING!</b> This code does not check for name collisions. A number
84
 of name collisions are possible. The possible table and column names are
85
 listed below. If these clash with each other, the result is missing tables
86
 and/or columns. If these clash with existing table names, the result is
87
 the inability to correctly transfer data to the database. You should also
88
 remember that table and column names in many databases are case insensitive,
89
 so collisions due to case folding are possible.</p>
90
 <pre>
91
    Table name: element type name
92
    Column names:
93
       element type name + "ID"
94
       element type name + "PCDATA"
95
       element type name + "PCDATA" + "Order"
96
       parent element type name + "ID"
97
       child element type name + "ID"
98
       child element type name + "Order"
99
       attribute name
100
    Table name: attribute name
101
    Column names:
102
       element type name + "ID"
103
       attribute name
104
       attribute name + "Order"
105
    Table name: element type name + "PCDATA"
106
    Column names:
107
       element type name + "ID"
108
       element type name + "PCDATA"
109
       element type name + "PCDATA" + "Order"
110
 </pre>
111
<p>
112
<hr>
113
<a name="index"></a>
114
<h2>
115
  <img src="images/variable-index.gif" width=207 height=38 alt="Variable Index">
116
</h2>
117
<dl>
118
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
119
	<a href="#DTD_EXTERNAL"><b>DTD_EXTERNAL</b></a>
120
  <dd> DTD is an external subset.
121
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
122
	<a href="#DTD_XMLDOCUMENT"><b>DTD_XMLDOCUMENT</b></a>
123
  <dd>  The DTD is in an XML document, as an internal subset, reference
124
 to an external subset, or both.
125
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
126
	<a href="#SCHEMA_DCD"><b>SCHEMA_DCD</b></a>
127
  <dd> Schema document uses DCD (not supported).
128
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
129
	<a href="#SCHEMA_DDML"><b>SCHEMA_DDML</b></a>
130
  <dd> Schema document uses DDML.
131
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
132
	<a href="#SCHEMA_SOX"><b>SCHEMA_SOX</b></a>
133
  <dd> Schema document uses SOX (not supported).
134
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
135
	<a href="#SCHEMA_W3C"><b>SCHEMA_W3C</b></a>
136
  <dd> Schema document uses W3C XML Schemas (not supported).
137
  <dt> <img src="images/blue-ball-small.gif" width=6 height=6 alt=" o ">
138
	<a href="#SCHEMA_XMLDATA"><b>SCHEMA_XMLDATA</b></a>
139
  <dd> Schema document uses XML-Data (not supported).
140
</dl>
141
<h2>
142
  <img src="images/constructor-index.gif" width=275 height=38 alt="Constructor Index">
143
</h2>
144
<dl>
145
  <dt> <img src="images/yellow-ball-small.gif" width=6 height=6 alt=" o ">
146
	<a href="#MapFactory_DTD()"><b>MapFactory_DTD</b></a>()
147
  <dd> Construct a new MapFactory_DTD.
148
</dl>
149
<h2>
150
  <img src="images/method-index.gif" width=207 height=38 alt="Method Index">
151
</h2>
152
<dl>
153
  <dt> <img src="images/red-ball-small.gif" width=6 height=6 alt=" o ">
154
	<a href="#createMap(de.tudarmstadt.ito.schemas.dtd.DTD, boolean)"><b>createMap</b></a>(DTD, boolean)
155
  <dd>  Create a map from a DTD object.
156
  <dt> <img src="images/red-ball-small.gif" width=6 height=6 alt=" o ">
157
	<a href="#createMapFromDTD(org.xml.sax.InputSource, int, boolean, java.util.Hashtable)"><b>createMapFromDTD</b></a>(InputSource, int, boolean, Hashtable)
158
  <dd>  Create a map from an InputSource representing an external DTD subset or
159
 an XML document containing a DTD.
160
  <dt> <img src="images/red-ball-small.gif" width=6 height=6 alt=" o ">
161
	<a href="#createMapFromSchema(org.xml.sax.InputSource, int, boolean, org.xml.sax.Parser)"><b>createMapFromSchema</b></a>(InputSource, int, boolean, Parser)
162
  <dd>  Create a map from an InputSource representing a schema.
163
</dl>
164
<a name="variables"></a>
165
<h2>
166
  <img src="images/variables.gif" width=153 height=38 alt="Variables">
167
</h2>
168
<a name="SCHEMA_DCD"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
169
<b>SCHEMA_DCD</b>
170
<pre>
171
 public static final int SCHEMA_DCD
172
</pre>
173
<dl>
174
  <dd> Schema document uses DCD (not supported).<p>
175
</dl>
176
<a name="SCHEMA_DDML"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
177
<b>SCHEMA_DDML</b>
178
<pre>
179
 public static final int SCHEMA_DDML
180
</pre>
181
<dl>
182
  <dd> Schema document uses DDML.<p>
183
</dl>
184
<a name="SCHEMA_SOX"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
185
<b>SCHEMA_SOX</b>
186
<pre>
187
 public static final int SCHEMA_SOX
188
</pre>
189
<dl>
190
  <dd> Schema document uses SOX (not supported).<p>
191
</dl>
192
<a name="SCHEMA_W3C"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
193
<b>SCHEMA_W3C</b>
194
<pre>
195
 public static final int SCHEMA_W3C
196
</pre>
197
<dl>
198
  <dd> Schema document uses W3C XML Schemas (not supported).<p>
199
</dl>
200
<a name="SCHEMA_XMLDATA"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
201
<b>SCHEMA_XMLDATA</b>
202
<pre>
203
 public static final int SCHEMA_XMLDATA
204
</pre>
205
<dl>
206
  <dd> Schema document uses XML-Data (not supported).<p>
207
</dl>
208
<a name="DTD_EXTERNAL"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
209
<b>DTD_EXTERNAL</b>
210
<pre>
211
 public static final int DTD_EXTERNAL
212
</pre>
213
<dl>
214
  <dd> DTD is an external subset.<p>
215
</dl>
216
<a name="DTD_XMLDOCUMENT"><img src="images/blue-ball.gif" width=12 height=12 alt=" o "></a>
217
<b>DTD_XMLDOCUMENT</b>
218
<pre>
219
 public static final int DTD_XMLDOCUMENT
220
</pre>
221
<dl>
222
  <dd> The DTD is in an XML document, as an internal subset, reference
223
 to an external subset, or both.<p>
224
</dl>
225
<a name="constructors"></a>
226
<h2>
227
  <img src="images/constructors.gif" width=231 height=38 alt="Constructors">
228
</h2>
229
<a name="MapFactory_DTD"></a>
230
<a name="MapFactory_DTD()"><img src="images/yellow-ball.gif" width=12 height=12 alt=" o "></a>
231
<b>MapFactory_DTD</b>
232
<pre>
233
 public MapFactory_DTD()
234
</pre>
235
<dl>
236
  <dd> Construct a new MapFactory_DTD.
237
<p>
238
</dl>
239
<a name="methods"></a>
240
<h2>
241
  <img src="images/methods.gif" width=151 height=38 alt="Methods">
242
</h2>
243
<a name="createMapFromDTD(org.xml.sax.InputSource, int, boolean, java.util.Hashtable)"><img src="images/red-ball.gif" width=12 height=12 alt=" o "></a>
244
<a name="createMapFromDTD"><b>createMapFromDTD</b></a>
245
<pre>
246
 public <a href="de.tudarmstadt.ito.xmldbms.Map.html#_top_">Map</a> createMapFromDTD(InputSource src,
247
                             int type,
248
                             boolean storeOrder,
249
                             Hashtable namespaceURIs) throws <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>, <a href="de.tudarmstadt.ito.schemas.dtd.DTDException.html#_top_">DTDException</a>, EOFException, MalformedURLException, IOException
250
</pre>
251
<dl>
252
  <dd> Create a map from an InputSource representing an external DTD subset or
253
 an XML document containing a DTD.
254
<p>
255
  <dd><dl>
256
    <dt> <b>Parameters:</b>
257
    <dd> filename - The name of the schema file.
258
    <dd> type - DTD_EXTERNAL or DTD_XMLDOCUMENT.
259
    <dd> storeOrder - Whether the map should store order information in
260
    the database.
261
    <dd> namespaceURIs - A Hashtable using prefixes as keys and namespace
262
    URIs as values. May be null.
263
    <dt> <b>Returns:</b>
264
    <dd> The Map object.
265
    <dt> <b>Throws:</b> <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>
266
    <dd> Thrown if a mapping error occurs.
267
    <dt> <b>Throws:</b> <a href="de.tudarmstadt.ito.schemas.dtd.DTDException.html#_top_">DTDException</a>
268
    <dd> Thrown if a DTD error is found.
269
    <dt> <b>Throws:</b> EOFException
270
    <dd> Thrown if EOF is reached prematurely.
271
    <dt> <b>Throws:</b> MalformedURLException
272
    <dd> Thrown if a system ID is malformed.
273
    <dt> <b>Throws:</b> IOException
274
    <dd> Thrown if an I/O error occurs.
275
  </dl></dd>
276
</dl>
277
<a name="createMapFromSchema(org.xml.sax.InputSource, int, boolean, org.xml.sax.Parser)"><img src="images/red-ball.gif" width=12 height=12 alt=" o "></a>
278
<a name="createMapFromSchema"><b>createMapFromSchema</b></a>
279
<pre>
280
 public <a href="de.tudarmstadt.ito.xmldbms.Map.html#_top_">Map</a> createMapFromSchema(InputSource src,
281
                                int type,
282
                                boolean storeOrder,
283
                                Parser parser) throws <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>, SAXException, IOException
284
</pre>
285
<dl>
286
  <dd> Create a map from an InputSource representing a schema.
287
 <p>Currently, only DDML files are supported.</p>
288
<p>
289
  <dd><dl>
290
    <dt> <b>Parameters:</b>
291
    <dd> filename - The name of the schema file.
292
    <dd> type - The schema type: SCHEMA_DCD, SCHEMA_DDML, SCHEMA_SOX,
293
    SCHEMA_XMLDATA, SCHEMA_W3C.
294
    <dd> storeOrder - Whether the map should store order information in
295
    the database.
296
    <dd> parser - A SAX Parser to parse the InputSource.
297
    <dt> <b>Returns:</b>
298
    <dd> The Map object.
299
    <dt> <b>Throws:</b> <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>
300
    <dd> Thrown if a mapping error occurs.
301
    <dt> <b>Throws:</b> SAXException
302
    <dd> Thrown if a SAX error occurs.
303
    <dt> <b>Throws:</b> IOException
304
    <dd> Thrown if an I/O error occurs.
305
  </dl></dd>
306
</dl>
307
<a name="createMap(de.tudarmstadt.ito.schemas.dtd.DTD, boolean)"><img src="images/red-ball.gif" width=12 height=12 alt=" o "></a>
308
<a name="createMap"><b>createMap</b></a>
309
<pre>
310
 public <a href="de.tudarmstadt.ito.xmldbms.Map.html#_top_">Map</a> createMap(<a href="de.tudarmstadt.ito.schemas.dtd.DTD.html#_top_">DTD</a> dtd,
311
                      boolean storeOrder) throws <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>
312
</pre>
313
<dl>
314
  <dd> Create a map from a DTD object.
315
<p>
316
  <dd><dl>
317
    <dt> <b>Parameters:</b>
318
    <dd> dtd - A DTD object from which to create the Map.
319
    <dd> storeOrder - Whether the map should store order information in
320
    the database.
321
    <dt> <b>Returns:</b>
322
    <dd> The Map object.
323
    <dt> <b>Throws:</b> <a href="de.tudarmstadt.ito.xmldbms.InvalidMapException.html#_top_">InvalidMapException</a>
324
    <dd> Thrown if a map error occurs.
325
  </dl></dd>
326
</dl>
327
<hr>
328
<pre>
329
<a href="packages.html">All Packages</a>  <a href="tree.html">Class Hierarchy</a>  <a href="Package-de.tudarmstadt.ito.xmldbms.mapfactories.html">This Package</a>  <a href="Package-de.tudarmstadt.ito.xmldbms.mapfactories.html">Previous</a>  <a href="de.tudarmstadt.ito.xmldbms.mapfactories.MapFactory_MapDocument.html#_top_">Next</a>  <a href="AllNames.html">Index</a></pre>
330
</body>
331
</html>
(68-68/72)