【问题标题】:putting colon (:) in xml attribute将冒号 (:) 放在 xml 属性中
【发布时间】:2015-12-22 04:45:02
【问题描述】:

我正在开发 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&#58;noNamespaceSchemaLocation", "file:///c:/temp/applicad-export.xsd");

但它显示错误提示 Specification task value for attribute xsi

我想可能有一些方法可以实现这一点,但我想不通。

【问题讨论】:

    标签: java android xml attributes xmlserializer


    【解决方案1】:

    冒号很特殊:您的属性名称由命名空间前缀(这是命名空间 URI 的简写,在本例中为“http://www.w3.org/2001/XMLSchema-instance”)和本地名称组成,以冒号分隔。

    您对XmlSerializer.attribute() 的调用应将命名空间URI 指定为第一个参数,将本地名称("noNamespaceSchemaLocation") 指定为第二个参数。

    您还需要使用 XmlSerializer.setPrefix("xsi", "http://www.w3.org/2001/XMLSchema-instance") 将命名空间前缀绑定到 URI。

    【讨论】:

    • 我试过这样 serializer.setPrefix("xsi", "w3.org/2001/XMLSchema-instance"); serializer.startTag(null, "APPLICAD_EXPORT"); serializer.attribute(null, "noNamespaceSchemaLocation", "file: ///c:/temp/applicad-export.xsd"); 但没有得到所需的结果,而是我得到了这个 w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="file:///c:/temp/ applicad-export.xsd"> 但需要的是
    • 好吧,再读一遍我的回答。 attribute() 的第一个参数不应为 null。
    • 谢谢先生,我已经尝试过一些这样的想法,并且 m 接近我的结果 serializer.setPrefix("xsi", "w3.org/2001/XMLSchema-instance"); serializer.startTag(null, "APPLICAD_EXPORT"); serializer .attribute("w3.org/2001/XMLSchema-instance", "noNamespaceSchemaLocation", "file:///c:/temp/applicad-export.xsd");
    猜你喜欢
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2011-09-11
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多