我正在研究android项目,在某些任务中我需要创建xml文档文件。 我需要像这样创建包含冒号的属性
<APPLICAD_EXPORT xsi:noNamespaceSchemaLocation="file:///c:/temp/applicad-export.xsd">
我可以成功创建xml文件,但问题是我无法为APPLICAD_EXPORT属性添加冒号。
到目前为止,我确实喜欢这个以获取属性前缀
的冒号XmlSerializer serializer = Xml.newSerializer();
//we set the FileOutputStream as output for the serializer, using UTF-8 encoding
serializer.setOutput(fileos, "UTF-8");
//Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null)
serializer.startDocument(null, Boolean.valueOf(true));
//set indentation option
serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
serializer.startTag(null, "APPLICAD_EXPORT");
serializer.attribute(null, "xsi:noNamespaceSchemaLocation", "file:///c:/temp/applicad-export.xsd");
但它显示错误属性xsi的规范授权值
我想可能有某种方法可以实现这一目标,但我无法理解。
答案 0 :(得分:2)
冒号是特殊的:您的属性名称由命名空间前缀(在这种情况下是#34; http://www.w3.org/2001/XMLSchema-instance&#34;)的简写名称和本地名称组成,由结肠。
您对XmlSerializer.attribute()
的调用应将名称空间URI指定为第一个参数,将本地名称("noNamespaceSchemaLocation"
)指定为第二个参数。
您还需要使用XmlSerializer.setPrefix("xsi", "http://www.w3.org/2001/XMLSchema-instance")
将名称空间前缀绑定到URI。