亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

XSD 兩個元素之間的選擇

XSD 兩個元素之間的選擇

絕地無雙 2023-03-31 17:13:34
我有四個元素 A、B、C、D。我想創建一個 XSD,其架構應選擇 [A & B & C] 或 [A & D]。<xs:schema xmlns:w3="http://www.w3.org/TR/xmlschema-1/"        xmlns:xs="http://www.w3.org/2001/XMLSchema"       elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"><xs:element name="abcd">    <xs:complexType>        <xs:choice>            <xs:element name="A" type="xs:string"/>            <xs:sequence>                <xs:element name="B" type="xs:dateTime"/>                <xs:element name="C" type="xs:decimal"/>            </xs:sequence>            <xs:sequence>                <xs:element name="D" type="xs:dateTime"/>            </xs:sequence>        </xs:choice>    </xs:complexType></xs:element>這是正確的嗎?我通過 xjc 從 xsd 生成了 java 類。我得到這個文件:@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = {"a","b","c","d"})public class abcd {@XmlElement(name = "a", required = true)protected String a;@XmlElement(name = "b")protected String b;@XmlElement(name = "c")protected BigDecimal c;@XmlElement(name = "d")protected String d;// get&set}此類與我的 xsd 方案不匹配。我究竟做錯了什么?
查看完整描述

1 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

您的模式接受 [A]、[B & C] 或 [D] 的選擇。


另一種思考方式[A & B & C] or [A & D]是[A] followed by either [B & C] or [D]。這可以在 XSD 中表示,方法是將 A 元素從選項中移出到一個序列中,如下所示:


<xs:element name="abcd">

? ? <xs:complexType>

? ? ? ? <xs:sequence>

? ? ? ? ? ? <xs:element name="A" type="xs:string"/>

? ? ? ? ? ? <xs:choice>

? ? ? ? ? ? ? ? <xs:sequence>

? ? ? ? ? ? ? ? ? ? <xs:element name="B" type="xs:dateTime"/>

? ? ? ? ? ? ? ? ? ? <xs:element name="C" type="xs:decimal"/>

? ? ? ? ? ? ? ? </xs:sequence>

? ? ? ? ? ? ? ? <xs:element name="D" type="xs:dateTime"/>

? ? ? ? ? ? </xs:choice>

? ? ? ? </xs:sequence>

? ? </xs:complexType>

</xs:element>


查看完整回答
反對 回復 2023-03-31
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號