【问题标题】:XML Schema: What does a restriction with only a base attribute mean?XML Schema:只有基本属性的限制是什么意思?
【发布时间】:2010-12-25 09:54:15
【问题描述】:

创建如下内容意味着什么?

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

请注意,限制内没有实际元素(没有最小或最大长度,没有枚举等)。我感觉这基本上是把myField的类型设置为xsd:boolean

但是,我的 wsdl 中有以下两项:

(上面的例子)

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

当使用 JaxRPC 或 Apache Axis(转换为 java 对象骨架)时,第一个被转换为布尔值(对象),而后一个示例被转换为布尔值(原始)。这告诉我发布的第一个示例以某种方式表示该元素是可选的,但我不明白如何。

我同意第二个例子应该变成原语,但为什么第一个例子是布尔值?

更新:使第二个节点名称通用

【问题讨论】:

  • Silver Phoenix 提供了有关 xsd:element 为何扩展为原语的更多详细信息。剩下要回答的唯一问题是一些文档说指定的“simpleType”或“restriction”类型是隐式可选的。我了解到它们没有 minoccurs 或 maxoccurs 属性,所以我只需要找到一个文档点,这些站点默认情况下是可选的。

标签: xml schema restriction


【解决方案1】:

我看到的唯一原因是元素的默认最小值为 1,因此它是布尔值是有道理的。

另一方面,简单类型通常用于属性中,并且这些类型通常是可选的。所以这可能是它在哪里使用的问题。

【讨论】:

  • 赞成提供更多详细信息,为什么 xsd:element 会扩展为原语。这确实是因为 xsd:element 下 minoccurs 的默认值为 1。剩下要回答的唯一问题是一些文档说 simpleType 或指定的限制类型是隐式可选的。我了解到它们没有 minoccurs 或 maxoccurs 属性,所以我只需要找到一个文档点,这些站点默认为可选。
  • simpleType 没有“基数”特性。这是通过限制内的列表类型或方面实现的。我的意思是这样的: 属性默认是可选的。我只是把它放在上面来说明问题。如果类型出现在属性中,那么它是布尔值是有意义的,但如果它出现在元素中,那么我猜这是对程序的简化,因为 simpleTypes 更常用于属性中。尝试更改一个属性,使其具有 use="required" 以查看这是否会影响类型。
  • 好电话,实际发生的是 xsd:element 声明为“myField”类型。我的印象是 simpleType 代表一个节点本身。在 xsd:element 下有一个 minoccurs="0"。猜猜这解决了这个问题。感谢银凤凰的帮助。对于这个有些误导性的问题,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 2012-08-18
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2021-10-04
  • 2019-06-12
  • 1970-01-01
相关资源
最近更新 更多