Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在processContents=lax中指定外部架构_Java_Xml_Xsd_Xmlbeans - Fatal编程技术网

Java 如何在processContents=lax中指定外部架构

Java 如何在processContents=lax中指定外部架构,java,xml,xsd,xmlbeans,Java,Xml,Xsd,Xmlbeans,我有一个通用模式,它定义了如下部分: <xs:element name="detail"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs

我有一个通用模式,它定义了如下部分:

<xs:element name="detail">
    <xs:annotation>
        <xs:documentation>
        </xs:documentation>
    </xs:annotation>    

    <xs:complexType>
        <xs:sequence>
            <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="skip"/>
    </xs:complexType>
</xs:element>
<detail>
   <drawing>
      <name="test"/>
    </drawing>
</detail>

一天中的大部分时间我都在阅读这些内容,但似乎仍然不知道如何深入到实际xml文档中detail元素下的字段

我知道它可能是这样的:

<xs:element name="detail">
    <xs:annotation>
        <xs:documentation>
        </xs:documentation>
    </xs:annotation>    

    <xs:complexType>
        <xs:sequence>
            <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute processContents="skip"/>
    </xs:complexType>
</xs:element>
<detail>
   <drawing>
      <name="test"/>
    </drawing>
</detail>


xmlbeans没有办法知道details元素中的内容,因为它是一个通配符,所以它没有提供一种深入研究这些元素的方法。xmlbeans站点表示我修改了我在其中阅读的文档,以将通配符元素提升到一个级别,但这似乎不是一成不变的。
我还可以修改模式,对特定代码中可能存在的元素进行元素引用。对此有何想法

由于detail元素可以包含任何有效的XML,因此您只能使用某种访问内容的通用方式(XPath、DOM遍历或类似方式),或者专门尝试将每个子元素与特定的模式相匹配(最好使用唯一的名称空间)。然后,可以将与已知模式匹配的子项输入到您最喜欢的库中,该库用XML生成对象

正如您所说,另一个选项可以是指定模式中的每个有效子类型(出于可扩展性的目的,可以选择在底部使用通配符)