Java 元素中xsd验证引发的内容类型异常

Java 元素中xsd验证引发的内容类型异常,java,xml,validation,xsd,Java,Xml,Validation,Xsd,我有一个元素A,它可以是简单的元素,也可以是动态创建的复杂元素 示例xml如下所示: <A>john</A> <A> <B>kathy</B> <C> bat </C> </A> 约翰 凯西 球棒 我的xsd是这样的: <xsd:element name="A"> <xsd:complexType&g

我有一个元素A,它可以是简单的元素,也可以是动态创建的复杂元素

示例xml如下所示:

 <A>john</A>

 <A>
    <B>kathy</B>
    <C> bat </C>
 </A>
约翰 凯西 球棒 我的xsd是这样的:

        <xsd:element name="A">
                    <xsd:complexType>
                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
                            <xsd:sequence>
                                <xsd:element name="B" minOccurs="0" maxOccurs="unbounded" />
                                <xsd:element name="C" minOccurs="0" maxOccurs="unbounded" />
                            </xsd:sequence>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>

但在这里,我面临一个例外,即:


元素“A”不能有字符[子元素],因为该类型的内容类型是“仅元素”

您需要在类型中指定混合内容:

<xsd:element name="A">
  <xs:complexType mixed="true">
   <xsd:choice minOccurs="0" maxOccurs="unbounded">
     <xsd:sequence>
       <xsd:element name="B" minOccurs="0" maxOccurs="unbounded" />
       <xsd:element name="C" minOccurs="0" maxOccurs="unbounded" />
     </xsd:sequence>
   </xsd:choice>
 </xsd:complexType>

而且在选项中有一个序列也有点多余。你要么想要序列,要么不想要

希望有帮助