Revision 12439 trunk/libraries/libGPE/src/org/gvsig/xmlschema/som/impl/XSSchemaImpl.java
XSSchemaImpl.java | ||
---|---|---|
28 | 28 |
import org.gvsig.xmlschema.utils.SchemaUtils; |
29 | 29 |
import org.w3c.dom.Document; |
30 | 30 |
import org.w3c.dom.Element; |
31 |
import org.w3c.dom.NamedNodeMap; |
|
32 |
import org.w3c.dom.Node; |
|
31 | 33 |
|
32 | 34 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana |
33 | 35 |
* |
... | ... | |
73 | 75 |
* |
74 | 76 |
* $Id$ |
75 | 77 |
* $Log$ |
76 |
* Revision 1.3 2007-06-28 13:04:33 jorpiell |
|
78 |
* Revision 1.4 2007-07-02 09:57:35 jorpiell |
|
79 |
* The generated xsd schemas have to be valid |
|
80 |
* |
|
81 |
* Revision 1.3 2007/06/28 13:04:33 jorpiell |
|
77 | 82 |
* The Qname has been updated to the 1.5 JVM machine. The schema validation is made in the GPEWriterHandlerImplementor class |
78 | 83 |
* |
79 | 84 |
* Revision 1.2 2007/06/22 12:20:48 jorpiell |
... | ... | |
299 | 304 |
return targetNamespace; |
300 | 305 |
} |
301 | 306 |
|
307 |
/* |
|
308 |
* (non-Javadoc) |
|
309 |
* @see org.gvsig.xmlschema.som.IXSSchema#getTargetNamespacePrefix() |
|
310 |
*/ |
|
311 |
public String getTargetNamespacePrefix() { |
|
312 |
return getNamespacePrefix(targetNamespace); |
|
313 |
} |
|
314 |
|
|
315 |
/* |
|
316 |
* (non-Javadoc) |
|
317 |
* @see org.gvsig.xmlschema.som.IXSSchema#getNamespacePrefix(java.lang.String) |
|
318 |
*/ |
|
319 |
public String getNamespacePrefix(String namespaceURI) { |
|
320 |
if (namespaceURI != null){ |
|
321 |
NamedNodeMap attributes = element.getAttributes(); |
|
322 |
for (int i=0 ; i<attributes.getLength() ; i++){ |
|
323 |
Node node = attributes.item(i); |
|
324 |
String[] name = node.getNodeName().split(":"); |
|
325 |
if ((name.length == 2) && (name[0].equals(SchemaTags.XMLNS_NS))){ |
|
326 |
if (node.getNodeValue().equals(namespaceURI)){ |
|
327 |
return name[1]; |
|
328 |
} |
|
329 |
} |
|
330 |
} |
|
331 |
} |
|
332 |
return null; |
|
333 |
} |
|
334 |
|
|
302 | 335 |
/** |
303 | 336 |
* Add a new child element |
304 | 337 |
* @param childElement |
... | ... | |
309 | 342 |
|
310 | 343 |
/* |
311 | 344 |
* (non-Javadoc) |
312 |
* @see org.gvsig.gpe.schema.som.IXSSchema#addElement(java.lang.String, java.lang.String, boolean, int, int)
|
|
345 |
* @see org.gvsig.gpe.schema.som.IXSSchema#addElement(java.lang.String, java.lang.String, java.lang.String)
|
|
313 | 346 |
*/ |
314 |
public IXSElementDeclaration addElement(String name, String type, boolean nillable, int minOccurs, int maxOccurs) { |
|
347 |
public IXSElementDeclaration addElement(String name, String type, String substitutionGroup) { |
|
348 |
String typeName = getTargetNamespacePrefix(); |
|
349 |
if (typeName != null){ |
|
350 |
type = typeName + ":" + type; |
|
351 |
} |
|
315 | 352 |
Element element = getObjectsFactory().createElement( |
316 | 353 |
this, |
317 | 354 |
name, |
318 | 355 |
type, |
319 |
nillable, |
|
320 |
minOccurs, |
|
321 |
maxOccurs); |
|
356 |
substitutionGroup); |
|
322 | 357 |
addChildElement(element); |
323 | 358 |
XSElementDeclarationImpl xsElement = new XSElementDeclarationImpl(this); |
324 | 359 |
xsElement.setElement(element); |
325 | 360 |
return xsElement; |
326 | 361 |
} |
327 |
|
|
362 |
|
|
328 | 363 |
/* |
329 | 364 |
* (non-Javadoc) |
330 | 365 |
* @see org.gvsig.gpe.schema.som.IXSSchema#addElement(java.lang.String, java.lang.String) |
331 | 366 |
*/ |
332 | 367 |
public IXSElementDeclaration addElement(String name, String type) { |
333 |
return addElement(name, type, SchemaDefaults.ELEMENT_NILLABLE, |
|
334 |
SchemaDefaults.ELEMENT_MIN_OCCURS, SchemaDefaults.ELEMENT_MAX_OCCURS); |
|
335 |
} |
|
368 |
return addElement(name, type, null); |
|
369 |
} |
|
336 | 370 |
|
337 | 371 |
/* |
338 | 372 |
* (non-Javadoc) |
... | ... | |
369 | 403 |
public SchemaObjectsMapping getObjectsMapping() { |
370 | 404 |
return objectsMapping; |
371 | 405 |
} |
372 |
|
|
373 | 406 |
} |
374 | 407 |
|
375 | 408 |
|
Also available in: Unified diff