Revision 12439 trunk/libraries/libGPE/src/org/gvsig/xmlschema/som/impl/XSSchemaImpl.java

View differences:

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