Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML模式/验证:数据类型double的不同分隔符_Xml_Validation_Xsd_Xml Serialization_Schema - Fatal编程技术网

XML模式/验证:数据类型double的不同分隔符

XML模式/验证:数据类型double的不同分隔符,xml,validation,xsd,xml-serialization,schema,Xml,Validation,Xsd,Xml Serialization,Schema,我将xsd文件中某些参数的数据类型从string更改为实际类型,在本例中为double。现在我面临的问题是,在这里逗号被用作分隔符,而不是w3()定义的点,这会在反序列化过程中导致错误(C#,VS2008) 我的问题:我是否可以使用w3模式进行验证,但对双值使用不同的分隔符 谢谢您的帮助如果您想继续使用XML模式简单类型,就不能这样做。decimal及其派生的类型被锁定为使用句点。正如你所说: 如果要使用逗号作为分隔符,则需要定义自己的简单类型,例如: <xs:simpleType nam

我将xsd文件中某些参数的数据类型从string更改为实际类型,在本例中为double。现在我面临的问题是,在这里逗号被用作分隔符,而不是w3()定义的点,这会在反序列化过程中导致错误(C#,VS2008)

我的问题:我是否可以使用w3模式进行验证,但对双值使用不同的分隔符


谢谢您的帮助

如果您想继续使用XML模式简单类型,就不能这样做。decimal及其派生的类型被锁定为使用句点。正如你所说:

如果要使用逗号作为分隔符,则需要定义自己的简单类型,例如:

<xs:simpleType name="MyDecimal">
  <xs:restriction base="xs:string">
    <xs:pattern value="\d+(,\d+)?"/>
  </xs:restriction>
</xs:simpleType>


不过,在你这么做之前,要小心;XML是一种数据存储格式,而不是表示格式。您可能需要考虑是在加载后还是在XSLT转换过程中对其进行排序,等等。

很抱歉直到现在才响应,而thx是提示。一个自定义类型会做到这一点,但正如你所建议的,最好考虑其他选项。