powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание XMLType table по XML-схеме
6 сообщений из 6, страница 1 из 1
Создание XMLType table по XML-схеме
    #39991236
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь разобраться с сабжем.
Взял для примера XML-схему https://www.w3.org/TR/xmlschema-0/#POSchema
Зарегистрировал в Оракле под своим юзером с помощью DBMS_XMLSCHEMA.REGISTERSCHEMA

Теперь пытаюсь создать таблицу, чтоб хранить XML-данные, соответствующие этой схеме.
Но при создании требует обязательную опцию ELEMENT.
Код: plsql
1.
2.
CREATE TABLE xml_tab OF XMLTYPE
XMLSCHEMA "My test XML schema 1" ELEMENT "root-element";


Как можно заметить из текста самой схемы, у неё в корне находятся ДВА элемента:
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
<xsd:element name="comment" type="xsd:string"/>
И я хочу, чтобы в таблице тоже было 2 условных поля, а не какое-то одно из них.
Как мне указать это? Что нужно вписать вместо "root-element"?

Или я совсем всё неправильно понимаю?
XMLType table - это ж фактически аналог object table, только определения типов заданы платформо-независимо в виде XSD. Они импортируются ("регистрируются") в Оракл, и дальше всё должно быть похоже. Но вот пока не похоже :(
...
Рейтинг: 0 / 0
Создание XMLType table по XML-схеме
    #39991281
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Правильный Вася

Как можно заметить из текста самой схемы, у неё в корне находятся ДВА элемента
в схеме просто определяются элементы, ничего там не говорит о двух элементах в корне. Строгий xml имеет лишь один корень. Какой именно выбираешь сам либо добавь в схему ещё элемент и тип, состоящий из этих двух элементов.
...
Рейтинг: 0 / 0
Создание XMLType table по XML-схеме
    #39991285
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,
ну эту схему я не сам придумал, как видно выше.

И если стандартизирующая организация приводит её в качестве примера, то она, вероятно, правильная.
Если PurchaseOrder должен содержать в том числе и комментарий, то почему я должен делать PurchaseOrder_c_комментарием в качестве надстройки, если уже и так комментарий находится в схеме?

Проводя аналогии с ObjectTables, схема - это сложный тип, соединяющий в себе тип PurchaseOrder и комментарий. А я хочу сделать таблицу OF тип "схема".

Ведь, возвращаясь к примеру, там приводится и xml-документ, который удовлетворяет схеме целиком, а не какой-то её части или надстройке над ней. И такой документ логично ложится в таблицу OF тип "схема", если её получится создать, как я хочу. Иначе я не понимаю, как тогда документ укладывать в БД.
...
Рейтинг: 0 / 0
Создание XMLType table по XML-схеме
    #39991290
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя я, кажется, понял.

comment - это предварительная декларация, на которую ссылаются потом уже в нескольких местах самой схемы в сложных типах, чтоб не придумывать новые.
И XML с примером содержит примечания только в этих сложных конструкциях, а в корне нету комментов.

Тогда действительно, можно
Код: plsql
1.
OF XMLTYPE ... ELEMENT "purchaseOrder"
...
Рейтинг: 0 / 0
Создание XMLType table по XML-схеме
    #39991298
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Правильный Вася,

Схема это не тип, это просто набор определений. Перепрочти мой пост выше и внимательно перепрочти примеры с описанием по своей же ссылке, откуда эту схему брал.
...
Рейтинг: 0 / 0
Создание XMLType table по XML-схеме
    #39991585
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Создание XMLType table по XML-схеме
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]