gpt4 book ai didi

xml - XML Schema 中的枚举定义是多余的

转载 作者:数据小太阳 更新时间:2023-10-29 02:36:26 26 4
gpt4 key购买 nike

请确认(或反驳)模式定义(.xsd 文件)中的枚举是多余的(由于第二个 simpleType 只允许长度不超过 5 个字符的任何内容通过):

<simpleType name="decision">
<annotation>
<documentation>It will decide the flow</documentation>
</annotation>
<union>
<simpleType>
<restriction base="string">
<enumeration value="yes"/>
<enumeration value="no"/>
<enumeration value="maybe"/>
</restriction>
</simpleType>
<simpleType>
<restriction base="string">
<maxLength value="5"/>
</retriction>
</simpleType>
</union>
<simpleType>

我们的应用程序中有很多这样的东西,所以我们应该优化它。

最佳答案

您看到的是 XSD 作者使用的一种模式,用于为我所谓的“可扩展枚举”提供前向/后向兼容性。

对于某些人来说,这是矛盾的。对我来说,这意味着必须准备执行此契约(Contract)以优雅地处理列出的值以外的值。

契约设计者决定,对于那些特定的类型,不应该有“快速失败”拒绝(通常由 XSD 验证器完成)只是因为一些消费者可能没有围绕枚举值的业务逻辑,而 其他人可能会

当然,它最终看起来确实是一种“令人困惑”的文档方式……想象一下,虽然 XSD 代码实现如 .NET 的 xsd.exe、svcutil.exe 或 Java JAXB 会非常聪明(它们' re not) 仍然创建一个枚举类型,具有 yesnomaybeother后者是所有其他值的全部。我想知道,假设上述情况,您是否仍然认为这是多余的?代码覆盖专家会喜欢它...

关于xml - XML Schema 中的枚举定义是多余的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com