问题标签 [xsom]

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 投票
4 回答
6314 浏览

java - 使用模式重新排序 XML 文档的元素以符合模式

假设我有一个 XML 文档(表示为文本、W3C DOM 等等),还有一个 XML Schema。XML 文档具有模式定义的所有正确元素,但顺序错误。

如何使用架构“重新排序”文档中的元素以符合架构定义的顺序?

我知道这应该是可能的,可能使用XSOM,因为 JAXB XJC 代码生成器使用元素的正确序列化顺序注释其生成的类。

但是,我对 XSOM API 并不熟悉,而且它非常密集,所以我希望你们当中有人对它有一些经验,并且可以为我指明正确的方向。诸如“在这个父元素中允许哪些子元素,以及以什么顺序?”之类的东西。


让我举个例子吧。

我有一个这样的 XML 文档:

我有一个 XML Schema,它说 的内容<A>必须是 a<X>后跟一个<Y>. 现在很明显,如果我尝试根据模式验证文档,它会失败,因为<X>and<Y>的顺序错误。但是我提前知道我的文档是“错误的”,所以我还没有使用模式来验证。但是,我确实知道我的文档具有模式定义的所有正确元素,只是顺序错误。

我想做的是以编程方式检查模式(可能使用 XSOM - 这是 XML 模式的对象模型),并询问它的内容<A>应该是什么。API 将公开“您需要一个<X>后跟一个<Y>”的信息。

因此,我使用我的 XML 文档(使用 DOM API)并相应地重新排列,以便现在该文档将根据架构进行验证。

了解 XSOM 是什么很重要——它是一个 java API,代表 XML Schema 中包含的信息,而不是我的实例文档中包含的信息。

我不想做的是从架构生成代码,因为架构在构建时是未知的。此外,XSLT 没有用处,因为元素的正确排序仅由模式中包含的数据字典确定。

希望现在已经足够明确了。

0 投票
2 回答
3860 浏览

java - 使用 XSOM 从元素获取 minOccurs 属性

如何使用 XSOM 解析器从元素中获取 minOccurs 属性?我看过这个例子来获取与复杂类型相关的属性:

但是,似乎无法找到将其从元素中移除的正确方法,例如:

谢谢!

0 投票
2 回答
2439 浏览

java - Java 中的 XSD 到 DBMS

我已经搜索了 3 天,但找不到解决方案。我想解析 XSD 文件以在 java 中创建 mySql 表。顺便说一下,我不想用 xsd 验证 xml 文件。

首先,我使用了 XSOM,但无法修复错误 NoClassDefFoundError。我想我无法设置库。有什么东西不见了。如果你能给我必要的整个图书馆,它也许可以修复。

其次,我尝试使用 org.eclipse.xsd 库,但我无法再次使用它。我不知道如何使用这些类来解析 xsd 并获取其属性、元素等,然后创建 sql 表。

最后,我也无法解决 SAXParser 的问题。

——顺便说一句,打算做的是:

通过使用这个模式,我将创建一个数据库表,

然后,

通过使用这个 xml,我将插入数据库,

等待您的帮助。

谢谢。

0 投票
1 回答
1059 浏览

java - 解析wsdl和xsd

我一直在寻找一种以编程方式解析 WSDL 和关联的 XSD 文件以从注释/文档标签中获取值的方法。我设法使用 wsdl4j 从 wsdl 获取值,但是我如何为 XSD 文件执行此操作?我尝试使用 XSOM,但由于某种原因,我总是得到空值。

0 投票
2 回答
2775 浏览

java - XSD 到 HTML 的转换?

强文大家好!有什么方法可以将 XSD 文件转换为 HTML 文件...我在这里尝试实现的是解析 XSD 文件并在此基础上为用户提供一个表单,他可以在其中填写详细信息...最后我想通过绑定该数据来创建一个 XML 文件...例如考虑以下 XSD ..

这应该给我一个这样的 HTML 表单

如果有选择,那么它应该给用户一个重做组等......任何帮助将不胜感激......

0 投票
1 回答
1771 浏览

xml - 如何从 XSOM 解析器获取元素列表

使用 XSOM,我如何从示例模式中获取元素的信息?(见下文)

我一直在尝试使用 iterateElementDecls() 方法,但只能获取顶部元素(注)。

0 投票
1 回答
1222 浏览

xml - XSOM 与 Apache XmlSchema

我想要一个可用于内省 XSD 的库。基本上解析它并给出一个对象表示,以便我可以获得类型、名称、注释、命名空间等。所以我主要遇到了两个库: java.net XML Schema Object Model (XSOM)Apache commons XMLSchema

我觉得 XSOM 更好,但它似乎有不同的 CDDL 许可证。那么我能否在我无法开源的商业项目中使用 XSOM?你们中的任何人都知道将具有 LGPL 类型许可证的更好的此类库吗?

0 投票
1 回答
17261 浏览

java - 在 Java 中使用 XSOM 解析 XSD Schema。如何访问元素和复杂类型

我在用 Java 中的 XSOM 解析 .XSD 文件时遇到了很多困难。我有两个 .XSD 文件,一个定义日历,第二个定义全局类型。我希望能够读取日历文件并确定:

日历有 3 个属性

  • 有效的是一个名为 eYN 的 ENUM
  • Cal 是一个字符串
  • Status 是一个名为 eSTATUS 的 ENUM

日历.xsd

gtypes.xsd

我尝试访问此信息的代码如下。我对 Java 很陌生,所以欢迎任何风格批评。

我真的需要知道

  1. 如何访问复杂类型 cal 并查看它是一个字符串?
  2. 如何访问 Status 的定义以查看它是 eSTATUS 强调文本类型的枚举

我已经多次尝试通过 ComplexType 和 Elements and Content 访问正确的信息。但是我只是不明白,我找不到任何有帮助的例子。我希望(希望)最好的方法是(相对)简单的,当你知道怎么做的时候。所以,再一次,如果有人能指出我正确的方向,那将是一个很大的帮助。

0 投票
0 回答
921 浏览

parsing - 如何从 XSOM XSElementDecl 读取 ID

我在 Java 中使用 XSOM 来解析 XSD。它工作得非常好,但是我似乎无法掌握一个元素的一条信息——即“id”属性。我的元素之一是这样的:-

在这里,我试图检索存储在 xsd:element 的“id”部分中的“ACCOUNT.TITLE.1”文本。有任何想法吗 ?

一个安全的替代方法也是从“xsd:appinfo”部分的“fieldname”属性中检索它。但是,我也看不到如何掌握它!

任何帮助表示赞赏。

莎拉

0 投票
1 回答
486 浏览

c# - XSOM 解析器 getResult 返回 null

我正在尝试解析 XSD 文件。解析器解析方法没有给出任何异常,但是当我使用时parser.getResult(),它返回null。我的 XSD 文件中有一个 Schema 节点。

有任何想法吗?