当前位置: 首页 > 知识库问答 >
问题:

用Java中的XSOM解析XSD模式。如何访问另一个命名空间中的属性

郎祯
2023-03-14

除了具有不同名称空间的属性外,我在大多数情况下都能够使用XSOM解析XSD。对于本例,我希望获得枚举值“9901001”的属性“t:deprecated”。下面是一个示例XSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:t="http://www.test.com">
    <xs:simpleType name="Test">
        <xs:annotation>
            <xs:documentation>Test.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="9901001"  t:deprecated="yes">
                <xs:annotation>
                    <xs:documentation>Agonal/Idioventricular</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="9901003">
                <xs:annotation>
                    <xs:documentation>Asystole</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

共有1个答案

夏立果
2023-03-14

我想出来了。下面是以上步骤:
1)使用xsom进行解析并获取枚举值
2)使用xpath获取所需的内容

 类似资料:
  • http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd https://www.w3.org/tr/2002/rec-xmldsig-core-20020212/xmldsig-core-schema.xsd 这两个XSD文档都定义了元素、属性、attributeGroups和/或自引用同一文档内其他定

  • 我在访问另一个命名空间中存在的服务时遇到问题。 我有两个名称空间(在同一个集群中)airflow-dev和dask-dev。 在dask-dev名称空间中,我部署了dask集群(dask调度器和工作器)。此外,还为dask-scheduler pod创建了一个服务(集群IP)。我可以使用“kubectl port-forward”命令从chrome访问dask-scheduler pod。 然而,

  • 我有一个跨两个定义的复杂类型。XSD文件。 Parent.xsd: 嵌入式.xsd: 我的XML看起来像这样: 有没有办法改变事物,使嵌入的两个元素具有相同的前缀?我不能将嵌入类型复制到父对象中。外部原因的xsd。此外,不加区分地消除emb前缀的所有使用的解决方案将不起作用。

  • 我在默认命名空间中创建了一个serviceaccount(dm sa),并在clusterRole(绑定到PodSecurityPolicy)和clusterRoleBinding中使用了这个serviceaccount。接下来,在部署yaml(将在名称空间“dm”中运行)中,我在模板:spec下指定了serviceAccount:dm和serviceAccountName:default。这样,

  • 我有一个现有的项目: 我想添加一个api服务器,这样我就可以通过http访问部分系统。因此,我想在我的项目的/api子目录中添加一个laravel项目: 现在我想从laravel访问我的项目的类。 但我得到: 这可能是因为laravel项目有自己的名称空间。如何从实际project中引用类?