我是XSD的新手,我很困惑何时使用属性,何时使用元素?
为什么我们不能在属性中指定minOccurs和maxOccurs?
另外,为什么我们不能在元素中指定use ="required"?
mar*_*c_s 29
元素是XML元素 - 开始标记,一些内容,结束标记 - 它们是XML文档的构建块:
<test>someValue</test>
Run Code Online (Sandbox Code Playgroud)
在这里,"测试"将是一个元素.
属性是标签上的附加信息 - 它是元素上的"附加组件"或额外信息,但不能单独存在:
<test id="5">somevalue</test>
Run Code Online (Sandbox Code Playgroud)
"id"是一个属性.
您不能在单个标记上具有相同名称的多个属性 - > minOccurs/maxOccurs没有意义.您可以为属性定义必需(或不定义) - 其他任何内容都没有意义.
元素由它们在复杂类型中的出现来定义 - 例如,如果你有一个带有<xs:sequence>内部的复杂类型- 你定义所有元素必须存在并且必须按照这个特定的顺序:
<xs:complexType name="SomeType">
<xs:sequence>
<xs:element name="Element1" type="xs:string" />
<xs:element name="Element2" type="xs:string" />
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
在该类型的元素内部,子元素"Element1"和"Element2"是必需的,并且必须按此顺序出现 - 不需要"必需"或不需要(与属性一样).是否需要元素是通过使用minOccurs和maxOccurs来定义的; 默认情况下两者都是= 1,例如元素必须出现,并且只能出现一次.通过调整这些设置,您可以将元素定义为可选(minOccurs = 0),或允许它多次显示(maxOccurs> 1).
我强烈建议您查看有关XML Schema的W3Schools教程,并了解有关XML架构的更多信息.
渣
示例:XSD格式
<xs:complexType name="contactInformation">
<xs:all>
<xs:element name="firstName" type="xs:string" minOccurs="0"/>
<xs:element name="workCountryId" type="xs:long" minOccurs="0"/>
</xs:all>
<xs:attribute name="id" type="xs:long"/>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
XML格式
<contactInformation id=100>
<firstname>VELU</firstname>
<workCountryId>120</workCountryId>
</contactInformation>
Run Code Online (Sandbox Code Playgroud)
attribute默认情况下是可选的。要指定该属性是必需的,请使用该use属性:
例如 <xs:attribute name="id" type="xs:long" use="required"/>
有关属性和元素的更多信息。
甲complexType元件是包含其它元素和/或属性的XML元素。
在all该子元素可以以任意顺序出现,并且每个子元素元素指定可出现零或一次。
maxOccurs可选的。指定元素可以出现的最大次数。该值必须为1。
minOccurs可选的。指定元素可以出现的最小次数。该值可以是0或1。默认值是1
| 归档时间: |
|
| 查看次数: |
34664 次 |
| 最近记录: |