Xml ANSI X3.9的XSD验证
我正试图创建一个XSD文件,用于验证DICOM中定义的十进制字符串(DS):Xml ANSI X3.9的XSD验证,xml,validation,xsd,Xml,Validation,Xsd,我正试图创建一个XSD文件,用于验证DICOM中定义的十进制字符串(DS): 这基本上是一个16字节的限制,特殊值-Inf、+Inf和NaN是不可接受的 到目前为止,我试过: <xsd:simpleType name="DecimalString"> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="16"/> </xsd:restriction> </xs
-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中指定此类验证规则?可能的解决方案是:
<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>
根据: