XSD: вложенные типы по сравнению с глобальными типами

Новый и опрятный в Python 3.5:

[*map(chr, [66, 53, 0, 94])]

Благодаря Дополнительные распаковывающие обобщения

6
задан Community 23 May 2017 в 12:08
поделиться

1 ответ

В данном примере нет никакой реальной разницы между двумя - и никакие значительные преимущества или недостатки к также.

Однако в больших схемах вещи могут стать очень неопрятными и трудными справиться, когда практика для выбора, вложенного по глобальному, ясно не определяется.

Очевидные причины использования глобальных типов (прежде всего, повторное использование, также вложение) имеют тенденцию диктовать - в целом я предпочитаю один режим или другой. Т.е. если Вы снова используете некоторый complexTypes, но не других, сделайте их всех глобальными. Если Вы ничего не снова используете, сделайте их всех вложенными.

Исключение к этому (и это - что-то, которое я часто сталкивался) - то, если определение типов составляет объем сложности (!) Вашей схемы, и их включение относительно просто. В этом случае, независимо от того, снова используются ли они, я рекомендовал бы делать их глобальными, поскольку намного легче реструктурировать/переупорядочить Ваш документ, когда Вы не должны пробираться через крупные complexType определения. Они являются также теоретически более портативными.

Существуют также случаи, где Вы не можете достигнуть определенных структур документа с вложенными типами - пример этого использует два complexTypes в последовательности, которая может содержать 0 к неограниченным экземплярам каждого типа в любом смешанном порядке. Это не возможно с вложенными типами, но это с глобальными типами, на которые ссылаются.

6
ответ дан 17 December 2019 в 02:36
поделиться
Другие вопросы по тегам:

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