Streaming API for XML(StaX)中的命名空间

时间:2013-07-22 20:09:15

标签: java xml stax

我是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"));

非常感谢任何帮助......

由于

拉​​斯

1 个答案:

答案 0 :(得分:0)

xsi:schemaLocation="urn:blah blah.xsd"

不是名称空间声明,它是"xsi"名称空间中的属性。