Использование Индикаторов возникновения XSD

AlertDialog.Builder builder = new AlertDialog.Builder(activity);
        builder.setTitle("ALERTTILESTRING")
        .setMessage("alertNameString")
        .setCancelable(false)
        .setNegativeButton("Close",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
    }

Я надеюсь, что приведенный выше код является хорошим, в котором диалог работает очень хорошо

6
задан Dynamicbyte 29 August 2011 в 09:21
поделиться

2 ответа

Я выяснил сам.

На первый взгляд разница между моими примерами не очень очевидна, но если бы пример был немного более сложным, это имело бы смысл.

] Следующее расширение поясняет различия:


<xsd:element name="XList">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="X" type="xsd:token"
                         minOccurs="1" maxOccurs="1"/>
            <xsd:element name="Y" type="xsd:token"
                         minOccurs="1" maxOccurs="1"/>   
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

ведет к


<XList>
    <X>Only X</X>
    <Y>Only Y</Y>
</XList>

, тогда как


<xsd:element name="XList">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="X" type="xsd:token"
                         minOccurs="1" maxOccurs="unbounded"/>
            <xsd:element name="Y" type="xsd:token"
                         minOccurs="1" maxOccurs="unbounded"/>   
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

ведет к


<XList>
    <X>First X</X>
    <X>Second X</X>
    <X>Third X</X>
    ...
    <Y>First Y</Y>
    <Y>Second Y</Y>
    ...
</XList>

, а


<xsd:element name="XList">
    <xsd:complexType>
        <xsd:sequence minOccurs="1" maxOccurs="unbounded" >
            <xsd:element name="X" type="xsd:token"
                         minOccurs="2" maxOccurs="2"/>
            <xsd:element name="Y" type="xsd:token"
                         minOccurs="1" maxOccurs="1"/>   
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

ведет к


<XList>
    <X>First X</X>
    <X>Second X</X>
    <Y>First Y</Y>
    <X>Third X</X>
    <X>Fourth X</X>
    <Y>Second Y</Y>
    ...
</XList>

, а


<xsd:element name="XList">
    <xsd:complexType>
        <xsd:sequence minOccurs="1" maxOccurs="unbounded" >
            <xsd:element name="X" type="xsd:token"
                         minOccurs="1" maxOccurs="unbounded"/>
            <xsd:element name="Y" type="xsd:token"
                         minOccurs="1" maxOccurs="unbounded"/>   
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

ведет к


<XList>
    <X>First X</X>
    <X>Second X</X>
    <X>Third X</X>
    ...
    <Y>First Y</Y>
    <Y>Second Y</Y>
    ...
    <X>Fourth X</X>
    <X>Fifth X</X>
    <X>Sixth X</X>
    ...
    <Y>Third Y</Y>
    <Y>Fourth Y</Y>
    ...
</XList>

7
ответ дан 17 December 2019 в 00:14
поделиться

Если ваша последовательность содержит только одного дочернего элемента, я полагаю, это не имеет большого значения. Я бы поместил его в xsd: element, хотя: я бы обычно помещал их туда, если бы в последовательности было более одного элемента.

0
ответ дан 17 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: