XML模式:使用;“限制”;vs仅仅使用;“类型”;在一个元素中
我正在审查XSD,并寻找机会使其不那么冗长 我遇到过很多这样的例子:XML模式:使用;“限制”;vs仅仅使用;“类型”;在一个元素中,xml,xsd,Xml,Xsd,我正在审查XSD,并寻找机会使其不那么冗长 我遇到过很多这样的例子: <xs:element name="MyElement" maxOccurs="1" minOccurs="1" nillable="false"> <xs:annotation> <xs:documentation>Some documentation</xs:documentation> </xs:annotation> &
<xs:element name="MyElement" maxOccurs="1" minOccurs="1" nillable="false">
<xs:annotation>
<xs:documentation>Some documentation</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="MyType"/>
</xs:simpleType>
</xs:element>
一些文件
这不等于:
<xs:element name="MyElement" type="MyType" maxOccurs="1" minOccurs="1" nillable="false">
<xs:annotation>
<xs:documentation>Some documentation</xs:documentation>
</xs:annotation>
</xs:element>
一些文件
?
如果重要的话,以下是类型:
<xs:simpleType name="MyType">
<xs:restriction base="xs:string">
<xs:maxLength value="100"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
是的,对于所有实际目的(当然是为了验证目的),它是等效的。在这两种情况下,可能会有数据绑定应用程序给出不同的结果,我不知道。对于simpleType,您可以安全地消除minOccurs
和maxOccurs
。除了默认值之外,它们不会在序列之外做出贡献。nillable=“false”也是默认值(99%的时间都在使用),因此不需要说明。(有时代码看起来好像是由按行付费的人编写的。)一般来说,这些代码在我的模式中是按顺序排列的,但这很好。谢谢你,吉多特。迈克尔——或者是我看到的模式中的人物:)。酷!这可能会使该模式中至少有几百行被删除。