Укажите количество десятичных разрядов xs:decimal в XML-схеме

#.net #xml-serialization #wsdl #xsd

#.net #xml-сериализация #wsdl #xsd

Вопрос:

  1. Есть ли способ указать количество десятичных разрядов, которое xs:decimal должно быть в XML-схеме?

  2. Есть ли какой-либо способ контролировать это с помощью . Xml*** Атрибуты NET?

Ответ №1:

Вы можете создать пользовательский тип, который расширяет десятичную дробь, и указать количество цифр в fractionDigits следующим образом:

 <xs:simpleType name="twoPlacesDecimal" id="twoPlacesDecimal">
    <xs:restriction base="xs:decimal">
        <xs:fractionDigits fixed="true" value="2" />
    </xs:restriction>
</xs:simpleType>
  

Вы можете указать тип данных для свойства с помощью XmlAttribute(DataType = "value") но, к сожалению, это поддерживает только встроенные типы данных. Из моего чтения источника, если вы включите пользовательский тип данных, вы получите исключение.

Комментарии:

1. В качестве дополнительного примечания: msdn.microsoft.com/en-us/library/ms733112 (v = против 90).aspx , msdn.microsoft.com/en-us/library/2d60kbz0 (v = против 100).aspx говорит об этом . NET игнорирует ограничение fractionDigits.