当前位置: 首页 > 知识库问答 >
问题:

来自XML Java Jaxb的XSD

韩楷
2023-03-14

我需要在Java中生成xsd文件,该文件使用jaxb maven插件(http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html)将生成如下所示的XML:

<data xmlns = "http://foo.com">
    <childData xmlns = "http://bar.com" />
</data>

我不想编辑jaxb自动生成的类或类似的东西。

类似的题目我已经查过了,还没有找到解决的办法。

提前道谢。

共有1个答案

国阳
2023-03-14

这是xxx.xsd,定义foo名称空间中的外部元素:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
        xmlns:foo="http://foo.com"
        targetNamespace="http://foo.com"
        xmlns:bar="http://bar.com"
        jaxb:version="2.0">
  <xsd:import namespace="http://bar.com" 
              schemaLocation="yyy.xsd"/>
  <xsd:complexType name="DataType">
    <xsd:sequence>
      <xsd:element ref="bar:childData"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="data" type="foo:DataType"/>
</xsd:schema>

这里是yyy.xsd:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
            targetNamespace="http://bar.com"
            xmlns:bar="http://bar.com"
            jaxb:version="2.0">
  <xsd:element name="childData" type="xsd:string"/>
</xsd:schema>

稍后将介绍通常用于封送的Java代码:

 void marshal() throws Exception {
    JAXBContext jc = JAXBContext.newInstance( "com.foo:com.bar" );
    Marshaller m = jc.createMarshaller();
    DataType data = new DataType();
    ObjectFactory of = new ObjectFactory();
    JAXBElement<DataType> jbe = of.createData(data);
    data.setChildData("child data");
    m.marshal( jbe, System.out );
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:data xmlns="http://bar.com" xmlns:ns2="http://foo.com">  
  <childData>child data</childData>
</ns2:data>
 类似资料:
  • 问题内容: 使用的我可以将任意的数据到数据的URL。有没有办法使用内置的浏览器API 将数据URL转换回实例? 问题答案: 用户Matt一年前提出了以下代码如何在javascript中将dataURL转换为文件对象?,这可能对您有帮助 编辑:正如一些评论者所报道的,BlobBuilder已被弃用了一段时间。这是更新的代码:

  • 问题内容: 由于某种原因,登录完成后无法重定向到/ blog。在我的登录控制器中,我有以下内容。 jQuery Ajax 更新为工作代码 问题答案: AJAX之后,您将无法进行重定向。您需要自己使用Javascript完成。 服务器 客户 这应该工作。

  • 使用的我可以将任意数据转换为Data URL。有没有办法使用内置浏览器apis将Data URL转换回实例?

  • 以前,我在Red Hat提供的Oracle Java SE中使用JavaFX开发应用程序,但似乎不再提供JavaFX了,如https://access.redhat.com/articles/3253281。然而,似乎来自rhel-7-server-rpms存储库的OpenJDK并不是JavaFX附带的。 是否有更好的方法来代替仅仅从Red Hat提供的存储库之外安装包?我不想用自编译的OpenJ

  • 这是我的第一个帖子。作为一名初出茅庐的Android开发者,我几乎每天都在阅读各种主题的SO帖子,但对于这个问题,我没有从谷歌那里找到任何帮助。 我到目前为止的研究: 搜索这个问题比正常情况要难,因为搜索引擎似乎不关心大小写敏感性,而大小写敏感性在这个问题中是至关重要的。搜索谷歌只给了我类本身的链接,旧文章,或者完全不相关的文章。我得到的最接近的是JSONArray和JSONObject,这是一个