HyperJaxb - 有什么方法可以排除在包含的模式中导入的 xml 模式吗?

发布于 2024-11-28 20:05:36 字数 160 浏览 0 评论 0原文

这是我的问题:

我有两个 .xsd 文件,我们称它们为 a.xsd 和 b.xsd。我想要实现的是从 a.xsd 生成所有类,不包括 b.xsd 中的类。现在的问题是, a.xsd 引用 b.xsd 中的类型(通过 a ),因此即使排除, b.xsd 中的类也会构建。有办法解决这个问题吗?

Here's my problem:

I have two .xsd files, let's call them a.xsd and b.xsd. What I want to achieve is to generate all the classes from a.xsd excluding the classes in b.xsd. Now the problem is, that a.xsd references a type in b.xsd (via a ), so even when excluded, the classes in b.xsd get build. Is there some way around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦与时光遇 2024-12-05 20:05:36

您无法排除架构,但可以排除架构派生的包。

请参阅忽略包

<jaxb:bindings schemaLocation="schema-ignored.xsd" node="/xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
    </jaxb:schemaBindings>
    <hj:ignored-package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
</jaxb:bindings>

因为您实际上有一个参考到 a.xsd 中某处的 b.xsd 的类型,您需要中断此引用。您可以使用 hj:ignored 忽略此属性,也可以使用 xjc:dom 自定义它,使其成为 Java 类中的 DOM 元素。

附:我正在回复 [电子邮件受保护]比提问 SO 更快。

You can't exclude a schema, but you can exclude a schema-derived package.

Please see Ignoring packages:

<jaxb:bindings schemaLocation="schema-ignored.xsd" node="/xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
    </jaxb:schemaBindings>
    <hj:ignored-package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
</jaxb:bindings>

Since you actually have a reference to a type from b.xsd somewhere in a.xsd you will need to break this reference. You can either ignore this property using hj:ignored or customize it with xjc:dom to make it a DOM element in the Java class.

ps. I'm responding to [email protected] faster than to questions on SO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文