Nillable использование в иерархическом XML? - PullRequest
0 голосов
/ 26 января 2011

Если у вас есть структура XML, как показано ниже:

<xs:complexType name="ContactSuperType">
    <xs:sequence>
        <xs:element name="Details">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="GivenName" type="xs:string" nillable="true"/>
                    <xs:element name="Initials" type="xs:string" nillable="true" minOccurs="0"/>
                    <xs:element name="FamilyName" type="xs:string" nillable="true"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element ref="Address" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

Должно ли <xs:element name="Details"> быть <xs:element name="Details" nillable="true">?

1 Ответ

0 голосов
/ 27 января 2011

Это зависит от вас. В языке нет правила, которое гласит, что если все дочерние элементы элемента допускают нуль, то родительский элемент также должен быть нулевым. Но это может быть дизайнерская практика, которой вы захотите следовать. Это зависит от того, почему вы используете xsi: nil. Лично я никогда не сталкивался с ситуацией, в которой мне показалось бы, что это удаленно полезно - позволить пустому элементу и его отсутствию уже дает два способа обработки отсутствующих данных, и я не вижу необходимости в третьем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...