java.lang.NullPointerException when adding Element [message #593381] |
Thu, 30 December 2004 10:09 |
Eclipse User |
|
|
|
Originally posted by: ooi.de.ibm.com
Hi,
I have a problem when adding a element to a schema. A NullPointerException
occurs although the schema and the element exist.What could the problem
be?
here is the class i am experimenting with.
The error is in the addElements() method.
public class Example {
private XSDSchema schema;
private File outputFile;
private DocumentBuilderFactory docFactory;
private Document document;
private String parentClassName;
private ArrayList currentProperties;
private String root;
private String xsd;
private String muws;
public Example (String inputParentClassName,String inputPathName){
parentClassName = inputParentClassName;
schema = XSDFactory.eINSTANCE.createXSDSchema();
outputFile = new File(inputPathName + "//" + parentClassName+".xsd");
createDocument();
initializeSchema();
initializeNamespaces();
//addImports();
addElements();
save();
}
private void createDocument(){
docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = docFactory.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
document = (Document) builder.newDocument();
}
private void initializeSchema(){
Element schemaElement = (Element)
document.createElementNS(XSDUtil.SCHEMA_FOR_SCHEMA_URI_2001, "schema");
schema.setElement(schemaElement);
document.appendChild(schemaElement);
}
private void initializeNamespaces(){
schema.setTargetNamespace("http://dmtf.org/v2.8/"+parentClassName+".xsd");
java.util.Map qNamePrefixToNamespaceMap =
schema.getQNamePrefixToNamespaceMap();
root = "http://dmtf.org/v2.8/";
qNamePrefixToNamespaceMap.put("cim-root",root);
xsd= "http://www.w3.org/2001/XMLSchema";
qNamePrefixToNamespaceMap.put("xsd",xsd);
muws = "http://docs.oasis-open.org/wsdm/2004/XX/muws/schema";
qNamePrefixToNamespaceMap.put("muws",muws);
String currentParentXSDnamespace = "http://dmtf.org/v2.8/"+
parentClassName+".xsd";
qNamePrefixToNamespaceMap.put(parentClassName+"-xsd",currentParentXSDnamespace);
schema.update();
}
private void addImports(){
XSDImport muwsImport = XSDFactory.eINSTANCE.createXSDImport();
muwsImport.setNamespace(muws);
muwsImport.setSchemaLocation("\\import\\MUWS.xsd");
schema.getContents().add(muwsImport);
XSDImport rootImport = XSDFactory.eINSTANCE.createXSDImport();
rootImport.setNamespace(root);
rootImport.setSchemaLocation("\\import\\CIM_root.xsd");
schema.getContents().add(rootImport);
}
private void addElements(){
XSDElementDeclarationImpl element =(XSDElementDeclarationImpl)
XSDFactory.eINSTANCE.createXSDElementDeclaration();
element.setName("anElement");
schema.getContents().add(element);
}
public static void main(String[] args) {
Example example1 = new Example("Example","C:\\Documents and
Settings\\Administrator\\Desktop");
}
private void save(){
try {
Source source = new DOMSource(document);
Result result = new StreamResult(outputFile);
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.transform(source,result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}
thank you very much.
|
|
|
Powered by
FUDForum. Page generated in 0.07112 seconds