首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jaxb:通过xmlns属性而不是元素前缀的本地namspacing?

Jaxb:通过xmlns属性而不是元素前缀的本地namspacing?
EN

Stack Overflow用户
提问于 2011-10-20 23:36:50
回答 2查看 3.7K关注 0票数 3

我正在用Jaxb生成一些看起来不错的XML。这里有个狙击手:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ns2:oval_system_characteristics xsi:schemaLocation="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5 oval-system-characteristics-schema.xsd http://oval.mitre.org/XMLSchema/oval-common-5 oval-common-schema.xsd http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#esx esx-system-characteristics-schema.xsd" 
xmlns:ns2="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" xmlns="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:ns3="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#esx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

..。

代码语言:javascript
复制
<ns3:visdkmanagedobject_item id="1">
    <ns3:property>isolation.tools.diskWiper.disable</ns3:property>
    <ns3:value datatype="boolean">true</ns3:value>
</ns3:visdkmanagedobject_item>

这是符合标准的XML。不幸的是,I受到下游系统的限制,它只接受以这种方式格式化的XML:

代码语言:javascript
复制
<visdkmanagedobject_item id="1" xmlns="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#esx">
    <property>isolation.tools.diskWiper.disable</property>
    <value datatype="boolean">true</value>
</visdkmanagedobject_item>

其中某些元素是通过xmlns属性命名空间的。现在,对于这个问题,我如何让Jaxb停止(做正确的事情)用前缀命名元素,并开始用xmlns属性命名元素?

EN

回答 2

Stack Overflow用户

发布于 2011-10-21 01:11:39

您可以通过在包级别利用@XmlSchema注释来设置默认名称空间。这是通过利用package-info类来完成的(例如下面的例子):

com.example.package-info

代码语言:javascript
复制
@XmlSchema(
    namespace = "http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#esx",
    elementFormDefault = XmlNsForm.QUALIFIED)
package com.example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

获取更多信息

  • http://blog.bdoughan.com/2010/08/jaxb-namespaces.html
票数 2
EN

Stack Overflow用户

发布于 2011-10-21 00:24:06

有几种方法可以解决这个问题。它可能和一样简单,或者您可能需要使用名称空间前缀的完全控制。(顺便说一句,第二个xml不是“不正确的”,它只是使用默认的命名空间。但是,如果系统需要xml的特定前缀,这将是不正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7843511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档