问题标签 [xjc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3031 浏览

jaxb - How can I tell wsimport that separate WSDL files are referring to the same object classes?

I have three different JAX-WS services which use the same classes on the server (e.g. ServiceA, ServiceB, and ServiceC, all of which use MyCommonClass as a parameter). Another module we are developing is using wsimport to create a client for these services, however the problem is that wsimport creates separate instances of MyCommonClass for each service:

  • com.company.servicea.endpoint.MyCommonClass
  • com.company.serviceb.endpoint.MyCommonClass
  • etc.

I know that I could use the wsimport -p option to specify a common package for each endpoint, however I'd like to keep most of the classes in separate packages, but just to share certain common ones. From what I have read it sounds like a JAXB bindings file(s) might be able to help, but I haven't yet figured out the exact syntax to achieve the desired result. I think I'll need a separate bindings file for each service (as I call wsimport once for each one), which looks something like this:

Am I on the right track? Or do you have any alternative solutions to the problem?

0 投票
1 回答
94 浏览

xsd - 如何缓存 xsds 以卸载 w3c 服务器?

我正在构建一个基于 SAML-P 和 XACML 的 Web 服务,这需要 JAX-B/XJC 为每个构建考虑大量的 XSD。这需要很长时间并且非常不可靠,我认为是由于 W3C 限制 XSD 请求以减轻其服务器上的负载(基于他们的博客文章)。

更糟糕的是,一些 W3C XSD 包含明显的拼写错误,因此必须下载并修补这些错误,并编辑引用文件的 schemaLocation 以加载本地副本。主要 SAML-P 模式之一存在此问题(双 >> 和非常不正确的导入地址)。

我认为有一种方法可以使 Eclipse(或 JAX-B,或其他东西;不确定什么会解决这个问题;也许是 Xerces?)维护 XSD 的缓存并在我的构建中用这些替换 http:// refs(甚至系统范围)。但我还没有设法找到一个可行的食谱。有人可以帮忙吗?谢谢!

0 投票
1 回答
1045 浏览

jaxb - XJC:创建具有公共字段的类

我正在使用 XJC 从 XML 模式文件创建 Java 类。

创建的类中的字段是protected,这对我来说过去没问题。但现在我正在做一些 Tomcat-BlazeDS-Flash-Java-Serializing 的东西,我需要生成的类的字段是public

XJC 可以配置为完全做到这一点吗?

0 投票
2 回答
13560 浏览

ant - 如何从生成的 JAXB 文件中删除命名空间?

这是我的代码:

xsd文件:

构建.xml:

绑定.xml:

最后:

JAXBContext context = JAXBContext.newInstance(Player.class,ObjectFactory.class); Unmarshaller decodeur = context.createUnmarshaller();

我添加“xjc:simple”以获得@XMLRootElement,但引发异常:javax.xml.bind.UnmarshalException:意外元素(uri:“http://www.example.org/Player”

它不能正常工作,因为我得到了这个:@XmlRootElement(name = "Player", namespace = "http://www.example.org/Player" )

而不仅仅是:@XmlRootElement(name = "Player")

我怎样才能删除这个“命名空间”?

谢谢

0 投票
2 回答
11741 浏览

jaxb - 如何在 xjc 中禁用 Java 命名约定?

例如,xsd 中的 sOmE_PROPerty 必须是 java 类中的 sOmE_PROPerty 而不是 someProperty。

我尝试使用 globalBindings enableJavaNamingConventions="false" 但它不起作用。

0 投票
1 回答
399 浏览

xml - 通过 xjc 问题从 xsd 创建的 java 类

我在 VS 中创建并处理了 xsd 文件。但是现在我们需要创建与之对应的java类。我尝试使用 JDK 1.6 中的标准 xjc 工具,但它给了我一个错误 [ERROR] ct-props-correct.4: Error for type '#AnonType_BathRoomApartmentType'。指定了具有相同名称和目标命名空间的重复属性使用。重复属性使用的名称是“已更改”。文件的第 314 行:/C:/Program%20Files/Java/jdk1.6.0_24/bin/temp/LogicalModelSch ema.xsd

甚至认为我能够在 Eclipse 中毫无问题地从这个 xsd 生成 XML 文件。

有人可以给我任何建议,我该如何处理?我查看了论坛,但暂时没有找到任何解决方案!

提前致谢, 米拉

0 投票
4 回答
6646 浏览

java - JAXB / XJC 父子父导航

我想在子对象和父对象之间的类中有双向导航方法。IDREF 在我的情况下是不够的,因为我不想指定父级的 le id。要清楚,从这样的xsd:

我希望课程看起来像这样:

我的 xml 必须如下所示:

解组后,我希望能够将 A 导航到 Bs 并从 B 导航到 A(通过 b.getA())!这是一个非常基本的功能,但我没有找到一种简单的方法来实现它......

任何想法 ??

提前致谢

0 投票
2 回答
1728 浏览

java - JAXB classImpl 绑定(使用扩展生成的 impl 的特定 impl)但 getter 返回超类型

为了包装一些生成的类,我使用 classImpl 绑定,但是生成的类中的集合返回生成的类型而不是 classImpl 中的类型,我当然想要一个 classImpl 的列表......

我的xsd:

生成的类是:

正如预期的那样,singleB 的类型是 BWrapper,那么,为什么 listB 是 B 的列表而不是 BWrapper 的列表?

在此先感谢您的帮助 !!

0 投票
2 回答
965 浏览

ant - 将 ANT 与多个 XSD 和单个 XJB 一起使用

我有一个自定义的外部 XJB 文件,其中包含以下模式名称:

jxb:bindings schemaLocation="completeCheck.xsd" node="/xs:schema"

只是想知道,有没有办法在运行时使用 ANT(使用 ANT XJC)在 XJB 文件中替换模式名称,或者编写一个 xjb 绑定文件,这样我就不必在其中硬编码模式名称。基本上,我正在尝试查看是否可以将单个 xjb 文件用于多个 XSD。

目前,我到处都有相同的 xjb 文件,并且在 build.xml 中到处都引用了不同的硬编码模式名称。任何指针都受到高度赞赏。我正在使用 JAXB 2.x

0 投票
1 回答
807 浏览

binding - 自定义绑定以强制创建内部类或 xs:element 的 getter/setter

我有一个来自第三方提供商的模式声明如下。

以上是我无法更改的架构。我正在尝试为 jaxb 2.0 编写自定义绑定,以便我可以在 java 代码中将名称称为 GroupParameterType.Name 或 GroupParameterType.Value。

当前的默认绑定为我生成列表,即 getNameandValueList,但我希望分别为名称和值分别设置获取器和设置器。

我尝试放入如下自定义绑定:

它没有改变默认的类生成。谁能给我一些指示,那么我接下来还能尝试什么?我希望生成默认的列表以及名称和值的 getter/setter,或者将名称和值作为内部类。如果我删除 maxOccurs=4 选项,我可以生成 getter/setter,但由于我无法修改架构,我正在尝试使用外部绑定文件来获得该行为。

谢谢肖恩