XML-schema/validation: different separator for dat

2019-01-19 06:37发布

I changed the datatype of some parameters within my xsd file from string to their real type, in this case double. now I'm facing the problem that around here the comma is used as a separator and not the point as defined by the w3 (http://www.w3.org/TR/xmlschema-2/#double) causing erros all over during deserialization (C#, VS2008).

my question: Can I use the w3 schema for validation but with a different separator for double values?

thx for your help

1条回答
做个烂人
2楼-- · 2019-01-19 07:32

You cannot do that if you want to continue to use the XML Schema simple types. decimal and the types derived from it are locked down to using a period. As you say: the spec here.

If you want to use a comma as a separator, you need to define your own simple type, for example:

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

Before you do that, though, be careful; XML is a data storage format, not a presentation format. You might want to think about whether you sort this out after loading or during XSLT transformation, etc.

查看更多
登录 后发表回答