Должны ли мы явно объявлять простой тип даже для строкового типа в шаблоне жалюзи - PullRequest
1 голос
/ 05 июля 2011

Я использую шаблон жалюзи для разработки своей схемы XML, и для этого требуется, чтобы все типы были объявлены на глобальном уровне, а все элементы использовали типы, определенные в глобальной области видимости.

У меня такой вопрос:

Если я хочу объявить 2 элемента, которые являются простыми строками без каких-либо других ограничений, должен ли я объявить их в глобальной области видимости, а затем использовать их?Или я могу напрямую объявить простой тип внутри самого элемента?Разбиваю ли я жалюзи во втором сценарии, который я перечислю ниже?

Например, я могу сделать одно из двух:

<xsd:schema>
<xsd:simpleType name="ApplicantName">
    <xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="ApplicantCountry">
    <xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name="Application">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="ApplicantName" type="ApplicantName"/>
            <xsd:element name="ApplicantCountry" type="ApplicantCountry"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>

Или я могу использовать это.

<xsd:schema>
<xsd:element name="Application">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="ApplicantName" type="xsd:string"/>
            <xsd:element name="ApplicantCountry" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>

</xsd:element>
</xsd:schema>

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

Ну, почему вы решили следовать этой схеме? Какой вариант обеспечивает преимущества, которые обещает шаблон? Ответь на эти вопросы, и я думаю, что у тебя есть ответ.

Мне кажется, что шаблон требует первого подхода. Решение о том, действительно ли шаблон имеет значение, или его следует придерживаться так строго, решать вам. В основе этого вопроса лежит вопрос о том, чего вы пытаетесь достичь, используя шаблон в первую очередь.

1 голос
/ 07 июля 2011

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

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