【发布时间】:2022-01-12 12:01:38
【问题描述】:
我有一个复杂的XML schema,由不同文件中定义的多个命名空间组成。下面是在 XSD Diagram 中创建的图,显示了架构的一小部分。
请注意,party 的类型为 partyType,它在与 parties 不同的命名空间中定义。主文件 (veg.xsd) 中 parties 的(简化)XML 如下所示:
...
<xsd:element name="parties" minOccurs="0">
<xsd:annotation>
<xsd:documentation>...</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="party" type="misc:partyType" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation source="EML" xml:lang="en">...</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
...
现在,我的目标是为整个架构(跨命名空间)导出元素的层次结构,就像上图一样。但是,当我在 R 中解析 veg.xsd 时,我无法访问导入的命名空间。例如,当列出所有具有 name 属性的元素时,我只会得到 veg.xsd 中定义的元素的名称。
library(xml2)
def_xsd = read_xml("vegx_schema/veg.xsd")
xml_find_all(def_xsd, "//xsd:element") %>%
xml_attr("name") %>%
length()
[1] 52 # Should be much larger
任何帮助表示赞赏!
【问题讨论】: