Есть ли определение SQL information_schema XSD?

В SQL:2008, а также в предыдущих стандартах INFORMATION_SCHEMA описывается как стандартная метасхема. В принципе, метаданные могут быть выгружены в XML для дальнейшей обработки и обратного проектирования метаданных схемы с помощью XSLT и других XML-инструментов.

  • Делалось ли это раньше?
  • Доступен ли несколько полный XSD, описывающий INFORMATION_SCHEMA?

NB: я спрашиваю об этом, потому что я хотел бы реализовать выгрузку схемы базы данных в стандартную структуру SQL INFORMATION_SCHEMA XML в jooq-meta, а затем во втором процессе для повторной загрузки этой схемы, для создания артефактов исходного кода Java в jOOQ. Для этого я бы предпочел не создавать свой собственный XSD, а использовать уже существующий XSD, максимально приближенный к стандарту.


person Lukas Eder    schedule 18.11.2011    source источник
comment
под SQL:2008 вы имеете в виду SQL Server?   -  person Diego    schedule 11.04.2012
comment
@Diego: Нет, я имею в виду стандарт SQL:2008. SQL Server частично реализует этот стандарт в отношении INFORMATION_SCHEMA.   -  person Lukas Eder    schedule 11.04.2012
comment
какую XML-схему вам нужно сгенерировать? Какие у него реквизиты? Мне не удалось найти окончательную схему, необходимую для подачи jooq-meta.   -  person JotaBe    schedule 12.04.2012
comment
Я не думаю, что существует какая-либо XML-схема, определенная для SQL information_schema. Глядя на стандартное описание information_schema, я не могу найти упоминания о XML. Он определяется только структурой таблиц и представлений (на основе SQL). Возможно, вам потребуется определить собственную структуру XML.   -  person a_horse_with_no_name    schedule 12.04.2012
comment
@a_horse_with_no_name: я знаю, что это не определено в стандарте. Но, может быть, кто-то сделал это раньше и открыл исходный код, например...   -  person Lukas Eder    schedule 12.04.2012
comment
@JotaBe: я не хочу создавать схему XSD. Я хотел бы использовать схему XSD для создания XML. Содержимое XML должно описывать схему базы данных. Я обновил вопрос, чтобы уточнить ..   -  person Lukas Eder    schedule 12.04.2012


Ответы (1)


ANSI/ISO не определили конкретный способ представления схемы базы данных с использованием XML.

Последний стандарт — SQL:2011.

Здесь вы можете увидеть список официальных стандартов. Но, как видите, они не бесплатны:

35.060: Языки, используемые в информационных технологиях

Найдите в списке ISO/IEC 9075-x. Как видите, осталась только старая ИНФОРМАЦИОННАЯ СХЕМА.

Таким образом, ваш единственный вариант — искать что-то широко используемое. У Altova есть собственный способ сделать это (функция под названием «Создать XML-схему из структуры БД»). Посмотрите по этой ссылке: Как преобразовать базу данных в XML-схему

Это приложение также имеет опции для создания базы данных из экспортированной схемы.

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

Oxygen XML также имеет свой собственный способ сделать это, и это похоже на какой-то «черновик IOS»:

Извлечение схемы XML из структуры базы данных

person JotaBe    schedule 12.04.2012
comment
Спасибо за подсказки. Хорошая идея, использовать продукты Altova. Однако это может быть не бесплатно и с открытым исходным кодом. Но, может быть, у меня есть идеи... - person Lukas Eder; 12.04.2012
comment
Я добавил возможность сделать то же самое в Oxygen. Вы также можете посмотреть схемы, используемые ORM, такими как Hibernate, Entity Framework..., чтобы уловить некоторые идеи. Если вы посмотрите на Embarcadero ER/Studio, вы также увидите, что не существует устоявшегося стандартного способа обмена информацией о схеме: embarcadero.com/products/er-studio/metawizard - person JotaBe; 12.04.2012
comment
К сожалению, Hibernate не заходит слишком далеко. Он не поддерживает хранимые процедуры, многостолбцовые внешние ключи, ограничения проверки, определяемые пользователем типы, массивы и т. д. Мне действительно нужен полный стандарт (или мое собственное решение)... - person Lukas Eder; 12.04.2012