我看xsd的定义,并没有使用all,就是说,它和其它元素的使用是有先后顺序的,晕死。怎么回事
<xsd:complexType name="web-appType">        <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:group ref="javaee:descriptionGroup"/>
            <xsd:element name="distributable"
                         type="javaee:emptyType"/>
            <xsd:element name="context-param"
                         type="javaee:param-valueType">                <xsd:annotation>
                    <xsd:documentation>                        The context-param element contains the declaration
                        of a web application's servlet context
                        initialization parameters.                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>            <xsd:element name="filter"
                         type="javaee:filterType"/>
            <xsd:element name="filter-mapping"
                         type="javaee:filter-mappingType"/>
            <xsd:element name="listener"
                         type="javaee:listenerType"/>
            <xsd:element name="servlet"
                         type="javaee:servletType"/>
            <xsd:element name="servlet-mapping"
                         type="javaee:servlet-mappingType"/>
            <xsd:element name="session-config"
                         type="javaee:session-configType"/>
            <xsd:element name="mime-mapping"
                         type="javaee:mime-mappingType"/>
            <xsd:element name="welcome-file-list"
                         type="javaee:welcome-file-listType"/>
            <xsd:element name="error-page"
                         type="javaee:error-pageType"/>
            <xsd:element name="jsp-config"
                         type="javaee:jsp-configType"/>
            <xsd:element name="security-constraint"
                         type="javaee:security-constraintType"/>
            <xsd:element name="login-config"
                         type="javaee:login-configType"/>
            <xsd:element name="security-role"
                         type="javaee:security-roleType"/>
            <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
            <xsd:element name="message-destination"
                         type="javaee:message-destinationType"/>
            <xsd:element name="locale-encoding-mapping-list"
                         type="javaee:locale-encoding-mapping-listType"/>
        </xsd:choice>
   ......

解决方案 »

  1.   

    不是有 xsd:choice 么,表示每次允许出现其中的一种元素这个 Schema 文件中的 xsd:choice 的可以 0 到多次使用。
      

  2.   

    choice并不表示顺序可以任意吧。我记得是用all来定义顺序可以任意,且出现的次数也任意。
      

  3.   


    对啊 choice 是任意的,而且一次仅仅是这一堆元素中的一个,如果每次选一个的话,那多次(maxOccurs="unbounded")顺序就是不定的了。
      

  4.   

    那得看你这XML相关的schme或dtd文件啊
      

  5.   

    XML Schema 的 choice 元素仅允许包含在 <choice> 声明中的元素之一出现在包含元素中。
    只能出现一种元素。
      

  6.   

    我回复了这么多,难道你还没看明白?<xsd:choice minOccurs="0" maxOccurs="unbounded">每次出现一种,次数是不限的。也就是说我每次从一个盒子里拿出一个球,我多拿几次,就有很多颜色的球的。
      

  7.   

    ls的,那句话我是从一个网站上copy过来的,意思是说,choice允许若干元素中的一种出现,而不是多种,你拿一百次球,也只能拿一种球。
      

  8.   

    <xsd:choice minOccurs="0" maxOccurs="unbounded">这个就像个 while 循环嘛,执行一次是取一个,那执行多次不就可以取很多个了行?
      

  9.   

    因为 maxOccurs 的值是 unbounded,而不是 1 呢,呵呵