我是XML和StaX的新手。我需要使用StaX生成以下XML命名空间:
<?xml version="1.0" encoding="UTF-8"?>
<a xmlns="urn:blah blah"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:blah blah.xsd">
<other tags go here.../>
</a>
我尝试过各种各样的事情,包括使用Namespace和QName对象以及eventFactory.createStartElement,但我无法使用“xsi:schemaLocation”行。
到目前为止我所拥有的是......
ArrayList<Namespace> nameSpaces = new ArrayList<>();
Namespace nameSpace2 = eventFactory.createNamespace("xsi",
"http://www.w3.org/2001/XMLSchema-instance");
Namespace nameSpace3 = eventFactory.createNamespace("xsi:schemaLocation",
"urn:blah.xsd");
Namespace nameSpace1 = eventFactory.createNamespace("urn:blah");
nameSpaces.add(nameSpace1);
nameSpaces.add(nameSpace2);
nameSpaces.add(nameSpace3);
StartElement startElement = eventFactory.createStartElement(new QName(
"a"), nameSpaces.iterator(), null);
eventWriter.add(startElement);
eventWriter.add(eventFactory.createDTD("\n"));
非常感谢任何帮助......
由于
拉斯
答案 0 :(得分:0)
xsi:schemaLocation="urn:blah blah.xsd"
不是名称空间声明,它是"xsi"
名称空间中的属性。