XSD:将属性限制为xs:float或“”

前端之家收集整理的这篇文章主要介绍了XSD:将属性限制为xs:float或“”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在XSD中定义一个元素类型,我想要一个可选属性,如果存在,可以包含一个浮点数,或者为空(但仍然存在).

即:

<xs:element name="MyElement">
    <xs:complexType>
        <xs:attribute name="optionalFloatAttribute" type="xs:float" use="optional"/>
    </xs:complexType>
</xs:element>

需要“修复”以允许以下所有xml: –

<MyElement/>
 or
 <MyElement optionalFloatAttribute=""/>
 or
 <MyElement optionalFloatAttribute="3.14159"/>

我能看到这样做的唯一方法是将类型更改为xs:string,并将xs:restriction与正则表达式一起使用.但这对我来说似乎并不理想.有没有更好的办法?

我必须能够支持xml的这些变体 – 程序和现有的xml是遗留的,我试图反向创建一个模式,以匹配我在我们必须视为有效的xml时看到的无数变体.

解决方法

我不认为有办法处理这个并使用xs:float.从根本上说,它归结为空字符串不是有效数字的事实.您通常期望值为0,或者元素完全丢失.作为以下问题的答案有一个很好的解释:

Empty elements for primitve datatypes forbidden in XSD

似乎使用xs:string和regexp的选项可能是您最好的计划.

原文链接:https://www.f2er.com/css/215801.html

猜你在找的CSS相关文章