ANSI X3.9 的 XSD 验证

问题描述 投票:0回答:1

我正在尝试创建一个 XSD 文件来验证 DICOM 中定义的十进制字符串 (DS):

这基本上是一个

xsd:double
,限制为 16 个字节,特殊值
-Inf
+Inf
NaN
是不可接受的。

到目前为止,我尝试过:

<xsd:simpleType name="DecimalString">
 <xsd:restriction base="xsd:decimal">
  <xsd:totalDigits value="16"/>
 </xsd:restriction>
</xsd:simpleType>

但这不起作用,因为它不接受科学记数法(“E”或“e”符号)。我也尝试过:

<xsd:simpleType name="DecimalString">
  <xsd:restriction base="xsd:double"/>
</xsd:simpleType>

但它不仅接受

NaN
/
Inf
特殊值,而且也不允许指定
totalDigits
值 16。

如何在 XSD 中指定此类验证规则?

xml validation xsd dicom
1个回答
1
投票

一个可能的解决方案可能是:

<xsd:simpleType name="DecimalString">
 <xsd:restriction base="xsd:string">
  <xsd:pattern value="[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?"/>
  <xsd:maxLength value="16" />
 </xsd:restriction>
</xsd:simpleType>

基于:

© www.soinside.com 2019 - 2024. All rights reserved.