Если атрибут, определенный как нумерованный список, отсутствует в элементе XML, должно ли первое значение в списке использоваться как значение по умолчанию, если для него не указано значение по умолчанию?
У меня есть следующее в схеме:
<xsd:simpleType name="YesNoType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="yes"/>
<xsd:enumeration value="no"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="TelephoneStructure">
<xsd:sequence>
<xsd:element name="TelNationalNumber" type="core:TelephoneNumberType"/>
<xsd:element name="TelExtensionNumber" type="core:TelephoneExtensionType" minOccurs="0"/>
<xsd:element name="TelCountryCode" type="core:TelCountryCodeType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="TelUse" type="core:WorkHomeType"/>
<xsd:attribute name="TelMobile" type="core:YesNoType"/>
<xsd:attribute name="TelPreferred" type="core:YesNoType"/>
</xsd:complexType>
Я сгенерировал типы С# из приведенной выше схемы. Я ожидал, что отсутствующие атрибуты приведут к нулевым значениям, но я обнаружил, что отсутствующие атрибуты по умолчанию имеют первое значение в списке. Правильно ли это в соответствии со спецификацией XML?