Внутри xs: complexType есть элементы:
Запустив инструменты .NET, такие как SvcUtil.exe, вы получите класс, украшенный DataContractAttribute, содержащий свойства: public string RegistrationNumber {get; set;} public DateTimeExpiryDate {get; set;} публичный DateTime?RegistrationEndDate {get; set;}
В чем загадка: если полученный экземпляр XML не связывается с этими 3 элементами, очевидно, будут использоваться значения по умолчанию, хотя значения по умолчанию явно не определены в XSD.Какие значения по умолчанию для строки и даты и времени?
Чтобы обновить память deem, я смотрю на
2.2.1
InТаким образом, различия между значениями по умолчанию для элементов и атрибутов можно указать следующим образом: значения атрибутов по умолчанию применяются, когда атрибуты отсутствуют, и значения элементов по умолчанию применяются, когда элементы пусты.
Так что, если значение по умолчанию не определено явно, иэлемент пуст / отсутствует?
Стандарт, похоже, не определяет такой сценарий, но, видимо, это будет зависеть от реализации получателя.
Для типов данных, таких как integer и boolean, значения по умолчанию очевидны: 0 и false.Четко определено с первого дня электронных вычислений.
Но для строки и даты и времени ситуация немного сложна, в основном потому, что разные языки имеют разные структуры и соглашения для строки и даты и времени.
считаете, что мое понимание правильное?
В MSDN о DataMemberAttribute.EmitDefaultValue есть утверждение:
"Установка для свойства EmitDefaultValue значения false не рекомендуется. Это следует делать только в том случае, еслиэто особая необходимость (например, для обеспечения взаимодействия или уменьшения размера данных). "
Можете ли вы сказать мне, почему это не рекомендуется?скажем, звучит как MS рекомендует испускать каждый элемент независимо от того, если minOccurs = 0 в XML-сообщении?
Спасибо
Энди