2009-12-10 24 views
2

創建如下所示的內容意味着什麼?XML模式:只有基本屬性的限制是什麼意思?

<xsd:simpleType name="myField"> 
    <xsd:restriction base="xsd:boolean"/> 
</xsd:simpleType> 

通知有限制(無min或最大長度,沒有枚舉,等)內沒有實際的元件。我覺得這基本上是將myField的類型設置爲xsd:boolean

然而,我都在我的WSDL如下:

(在從上面的例子)

<xsd:element name="myOtherField" type="xsd:boolean"/> 

當使用JAXRPC或Apache Axis的(轉換到一個Java對象骨架),第一個被轉換爲布爾(對象),後者的例子被轉換爲布爾(原始)。這告訴我第一個示例以某種方式表示該元素是可選的,但我不明白如何。

我同意第二個例子應該成爲一個原始的,但爲什麼第一個例子是布爾?

更新:第二個製造節點名稱通用

+0

Silver Phoenix已經爲xsd:元素爲什麼擴展爲原語提供了額外的細節。留下來回答的唯一問題是一些文件,說明指定的「simpleType」或「restriction」類型是隱式可選的。我已經瞭解到他們沒有minoccurs或maxoccurs屬性,所以我只需要找到一個文檔點,默認情況下它們是可選的。 – Russ 2009-12-15 15:35:14

回答

1

我看到的唯一原因是,元素有其默認最小爲1,所以它是有道理的,這是布爾值。

另一方面,簡單類型通常用於屬性,這些屬性是可選的。所以這可能是它使用的地方。

+0

爲提供更多細節,爲什麼xsd:元素會擴展爲原語。這確實是因爲在xsd:元素下minoccurs的默認值是1. 剩下的唯一問題是需要回答的是一些說明simpleType或指定的限制類型的文檔是隱式可選的。我已經瞭解到他們沒有minoccurs或maxoccurs屬性,所以我只需要找到一個文檔點,默認情況下它們是可選的。 – Russ 2009-12-15 15:32:02

+0

simpleType沒有「基數」功能。這是通過列表類型或內部限制內容來實現的。我的意思是這樣的: 默認情況下屬性是可選的。我只是把它放在了對面。如果類型出現在屬性中,它將是布爾型的,但如果它出現在元素中,那麼我想這是程序的簡化,因爲simpleTypes在屬性中更常用。 嘗試更改屬性,使其具有use =「required」以查看是否影響類型。 – 2009-12-15 20:58:08

+0

好的調用,實際發生的是xsd:元素被聲明爲「myField」類型。我感覺simpleType代表節點本身。在xsd:元素下面有一個minoccurs =「0」。猜猜可以解決這個問題。感謝Silver Phoenix的幫助。我對這個有點誤導性的問題表示歉意。 – Russ 2009-12-15 22:53:42