问题标签 [onix]

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 投票
0 回答
288 浏览

jaxb - 用于生成常量的 JAXB 自定义绑定

我正在从第 3 方提供的 xsd 文件(准确地说是 ONIX XML 文件 XSD)生成 Java 类。模式定义了相当多的类型,它们具有 ashortname和 arefname属性。不幸的是,ONIX 人员没有使用该fixed属性为这些字段设置单个允许的字符串值,而是这样做:

这会导致 JAXB 为 shortname 和 refname 属性生成可变字符串字段。在类生成过程中,有关这些字段的唯一有效值的信息会丢失。

有没有办法使用外部 JAXB 绑定文件让 XJC 为以下形式生成shortname字段refname

我知道有一个fixedAttributeAsConstantProperty属性,但这似乎只起作用,如果 xsd 改为以以下方式定义shortnameand :refname

任何帮助表示赞赏

0 投票
1 回答
389 浏览

xml - 在 Excel 中批量过滤和解析 ONIX 数据 (XML)

我有 3000 个带有书籍元数据的 ONIX 风格的 xml URL。我想从这些文件中过滤出一些节点,并将它们解析为单个工作表中的 Excel 行。

这是 XML 路径的示例:http: //btsoep.appspot.com/rest/book/9789082516425

我想将这些 XML 数据过滤为

我需要在 Excel 工作表中检索到的数据,其中每个 URL 都有自己的行。所以 URL 在 A 行,TitleText 在 B 行,PersonName 在 C 行。

我该怎么做?

编辑1:

到目前为止,我尝试过的是:-首先使用 wget 下载所有 xml 数据,然后尝试批量解析这是 excel。这可以工作,但没有必要。- 在 Excel 中使用默认的 XMLimport 函数。我似乎无法批量运行它。

我没有任何过滤 XML 文件并在 Excel 工作表中解析它的经验。我没有要求任何人为我解决这个问题或为我编写代码,但我希望朝着好的方向迈出一步。哪种工具最适合这种情况?再次感谢。

0 投票
1 回答
131 浏览

c# - 反序列化相对路径 XML

在 C# 中,我想反序列化一些相对位置很重要的 Xml。以下 Xml 来自名为 Onix 的书籍标准:

如您所见,每第二行都称为“接近”。这些字段与上面的字段一起使用。

如果所有字段都是必填项,那么就没有问题,代码如下所示:

但是 4 个邻近字段与之前的字段是紧密绑定的,并且每一对字段都不是强制性的。例如,您可以获得缺少前两行的 xml。

是否有针对此类问题的任何属性?

0 投票
2 回答
106 浏览

xml - 使用 SSIS XML Source 存储相关的 xml 元素

使用 SSIS XML Source 我想阅读以下 XML

XML 无法更改,因为它是一个名为Onix.

如您所见,每行后面都有一个 Proximity。

我想以某种方式以正确的顺序存储它们,或者在OnHandfor之后调用 Proximity OnHandProximity

此 XML 之后的架构如下所示:

不幸的是,这在 SSIS XML Source 中正确给出了这个错误:

XML 源无法处理 XML 数据。模棱两可的 complexType 定义。元素“stock”有多个名为“Proximity”的成员。

我的问题当然是是否有人对这样处理 XML 有建议,而不会丢失相对位置的信息。

还有一些细节表明线条不是强制性的,但我认为第一个解决方案可以忽略该细节。

0 投票
1 回答
134 浏览

xml - XSLT (1.0) 如何在 CDATA 标记中包装元素值时保留 html 标记

我有一个带有 Text 元素的 XML,它可以包含标记的文本,并且取决于元素属性值,我知道内容是 CDATA 封装还是 XHTML。

因为我不能在 Text 元素中拥有/创建任何子元素,所以如果我得到 XHTML,我将需要封装。

这只是我需要在 XSLT 中转换的众多元素之一

一个简短的 xml 示例

我终于尝试了这个,它确实以某种方式实现了目标。只是没有保留html标签。

这将产生以下内容(注意

标签在第一个文本中消失了)

我也尝试过使用 cdata-section-elements="onix:Text"

但是输出变得非常奇怪,输出中包含 1 个元素的多个 cdata 标签,它唯一没有封装的实际上是我想要封装的文本

我如何解决我需要实现的目标?当我尝试将文本封装在我所做的代码中时,为什么要从元素值中删除 html 标记(.. 这甚至是正确的方法吗?!)

0 投票
0 回答
51 浏览

xml - Nokogiri 1.10.5 及更高版本对 ONIX XSD 进行误报验证

Nokogiri 的版本 1.10.5 及更高版本针对 ONIX v2.1 和 v3 XSD 产生与版本 1.10.4 不同的验证错误,并且我在该版本中找不到任何提交和更改的依赖项(libxml2-2.9.10libxslt 1.1 .34 ) 这将导致这种行为变化。

我创建了一个无效 ONIX XML 的小例子(ff不是允许的列表条目 <ProductForm>ff</ProductForm>):

并为它创建了一个使用 ONIX XSD 的测试:

指定版本 1.10.4 时测试通过,而在 1.10.5 及更高版本中测试失败,因为它忽略返回以下错误:

"26:0: ERROR: Element 'ProductForm': 'ff' is not a valid value of the atomic type 'List7'."

这是一个包含测试装置的 zip 文件,关于 gem 存储库中提出的问题,您可以使用它运行$ ruby -Ilib:test 1.10.4/test_case.rb$ ruby -Ilib:test 1.10.5/test_case.rb

0 投票
0 回答
71 浏览

xml - 如何在 Powershell 中针对嵌套的 XSD 验证 XML?

问题

Test-Xml如果 XSD 是嵌套的(包括其他 XSD),则通过 XSD 验证 XML 将失败。

Test-Xml "C:\XML\Onix3sample_refnames.xml" -SchemaPath "C:\XML\ONIX_BookProduct_3.0_reference.xsd"

导致错误:

Test-Xml : Type 'http://ns.editeur.org/onix/3.0/reference:SourceTypeCode' is not declared, or is not a simple type.

可能的原因

ONIX_BookProduct_3.0_reference.xsd包括另外两个 XSD 文件

使用嵌套 XSD 架构的 XML 验证错误中的注释- 未声明类型表明XmlReader不知道底层Stream输入的位置,因此无法加载include“d 子 XSD”。我的猜测:Test-Xml使用XmlReader.

另一个用户在 ASP.Net Core 中遇到了同样的问题

测试文件

可在https://www.editeur.org/93/Release-3.0-Downloads/下获得

XML 示例文件:https ://www.editeur.org/files/ONIX%203/ONIX_Books_3.0_sample_6.zip

XSD 架构文件:https ://www.editeur.org/files/ONIX%203/ONIX_BookProduct_XSD_schema+codes_Issue_52.zip

问题

由于我的 .NET 知识相当有限,我非常感谢 Powershell 解决方案可以根据嵌套的 XSD 模式验证 ONIX XML 文件 - 最好不必更改 XSD(由于频繁更新)。

PS:在 Notepad++/XML 工具或 XML 记事本中验证这些文件可以正常工作。

0 投票
1 回答
55 浏览

python - 使用 Python lxml 解析带有条件的 ONIX xml

我正在尝试使用 Python解析器从ONIX XML 格式文件中提取一些信息。lxml

除其他外,我对文档感兴趣的部分如下所示:

我需要在以下条件下提取价格金额:

PriceType='02' and CurrencyCode='NOK' and PriceQualifier='05'

我试过:

由于某种原因,我的带运算符的 XPathand不起作用并出现以下错误:

知道如何处理它吗?非常感谢任何帮助!