Что такое соглашение с типами и отдельными файлами XML-схем? - PullRequest
1 голос
/ 19 мая 2011

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

При определении типовиспользуя XSD, каково соглашение с точки зрения того, как вы разбиваете свои файлы? Я шел по пути создания отдельного файла XSD для каждого определяемого мной типа, а затем отдельного файла XSD, который определяетсообщение и импортирует необходимые файлы XSD.

Вот упрощенный пример , показывающий структуру (не может публиковать изображения, нет репутации).

Тип схемы (поля) имеютпространство имен, оканчивающееся на «типы», в то время как схемы сообщений имеют пространство имен, оканчивающееся на «сообщения».

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

Есть ли лучший подход?Я относительно новичок в XML и схемах.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Нет смысла иметь одну схему для каждого типа. Да, одна схема на область домена, но не одна на тип.

Например, у вас может быть одна схема для определения типов, связанных с клиентами, и другая схема для определения типов, связанных с продуктами. У вас может быть отдельная схема для определения общих типов, таких как люди и адреса, которые могут использоваться схемой клиента, а также схемой продукта (торговый представитель продукта, адрес поставщика).

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

0 голосов
/ 23 мая 2011

Отдельные xsd-файлы, которые вы создали, совершенно не связаны друг с другом?Например, если один xsd-файл обрабатывает домен продаж, а другой - домен платежей, вы должны предоставить каждой схеме уникальный целевой домен targetNamespace.Этот подход называется «гетерогенным дизайном пространства имен», и вы используете его сейчас.Я считаю, что это лучше всего подходит для вашего требования.Поскольку у вас несколько разрозненных систем, лучше хранить их в отдельных файлах xsd с разными targetNamespaces.Это повышает возможность повторного использования и уменьшает избыточность типов / полей.Это также предотвращает конфликты пространства имен.Однако, если у вас есть большое количество импортов, становится проблемой управлять, и будет зависеть степень детализации типов, определенных в импортированных схемах.

Если они связаны друг с другом, вы должны пойти на "Однородное проектирование пространства имен ".

Существует два других подхода к проектированию схемы XML: проектирование однородного пространства имен и проектирование пространства имен Chameleon, которые могут не соответствовать вашим конкретным требованиям.Более подробно о преимуществах / недостатках всех этих трех различных подходов к проектированию схемы вы можете узнать по адресу http://technologyandleadership.com/three-schema-design-approaches/

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