Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XML流API(StaX)中的名称空间_Java_Xml_Stax - Fatal编程技术网

Java XML流API(StaX)中的名称空间

Java XML流API(StaX)中的名称空间,java,xml,stax,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.../> &

我对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>

我尝试了很多方法,包括使用名称空间和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"));
ArrayList名称空间=新的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”);
名称空间。添加(名称空间1);
名称空间。添加(名称空间2);
名称空间。添加(名称空间3);
StartElement StartElement=eventFactory.createStartElement(新QName(
“a”),名称空间。迭代器(),null);
eventWriter.add(startElement);
添加(eventFactory.createDTD(“\n”);
任何帮助都将不胜感激

谢谢

罗斯

不是名称空间声明,而是
“xsi”
名称空间中的属性

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