Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Есть ли возможность стандартными средствами сгенерить xsd по select'у? / 10 сообщений из 10, страница 1 из 1
14.01.2019, 17:23
    #39759455
ora1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
Собственно сабж.
Т.е. возможность сгенерить хмл есть:
Код: plsql
1.
2.
3.
4.
SELECT DBMS_XMLGEN.GETXML(
  'SELECT 25 as DF from dual
    '
    ) FROM dual;



А xsd?
...
Рейтинг: 0 / 0
14.01.2019, 17:45
    #39759468
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
ora1234,

зачем xsd генерить?
...
Рейтинг: 0 / 0
14.01.2019, 18:03
    #39759482
ora1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
-2-, надо.
Необходимо знать тип данных. Например: 25 - строка или число.
...
Рейтинг: 0 / 0
14.01.2019, 18:11
    #39759489
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
ora1234Необходимо знать тип данных. Например: 25 - строка или число.Для этого мало "сгенерить" xsd. Нужно еще по нему генерить сам xml. Иначе число, записанное как ,123e-05 или null, не пройдет валидацию.
...
Рейтинг: 0 / 0
14.01.2019, 22:14
    #39759561
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
Стандартное средство
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
oracle@os2:~> java -cp $ORACLE_HOME/lib/xsu12.jar:$ORACLE_HOME/jdbc/lib/ojdbc8.jar:$ORACLE_HOME/lib/xmlparserv2.jar:$ORACLE_HOME/jlib/orai18n.jar OracleXML getXML -conn 'jdbc:oracle:thin:@//localhost:1521/2.2' -user '2/2' -withSchema -withEscaping 'select 123d x, sysdate d  from dual'

<?xml version = '1.0'?>
<DOCUMENT xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="ROWSET">
         <xsd:complexType>
            <xsd:sequence>
               <xsd:element name="ROW" minOccurs="0" maxOccurs="unbounded">
                  <xsd:complexType>
                     <xsd:sequence>
                        <xsd:element name="X" type="xsd:null" nillable="true" minOccurs="0"/>
                        <xsd:element name="D" type="xsd:string" nillable="true" minOccurs="0"/>
                     </xsd:sequence>
                     <xsd:attribute name="num" type="xsd:integer"/>
                  </xsd:complexType>
               </xsd:element>
            </xsd:sequence>
         </xsd:complexType>
      </xsd:element>
   </xsd:schema>
   <ROWSET xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="#/DOCUMENT/xsd:schema[not(@targetNamespace)]">
      <ROW num="1">
         <X>123.0</X>
         <D>2019-01-14 22:10:52</D>
      </ROW>
   </ROWSET>
</DOCUMENT>
...
Рейтинг: 0 / 0
15.01.2019, 14:19
    #39759769
ora1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
-2-, может я вопрос не так задал? Хотелось бы "бюджетного" решения.
Например: в мс скл следующий код
Код: sql
1.
2.
3.
4.
5.
6.
7.
with za as(
SELECT cast(25 as decimal(28)) as F1
, 'Привет' as F2
	)
select *
from za
FOR XML AUTO,XMLSCHEMA;



дает такой результат:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet8" xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet8" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">
  <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
  <xsd:element name="za">
    <xsd:complexType>
      <xsd:attribute name="F1">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:decimal">
            <xsd:totalDigits value="28" />
            <xsd:fractionDigits value="0" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="F2" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="106">
            <xsd:maxLength value="6" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
<za xmlns="urn:schemas-microsoft-com:sql:SqlRowSet8" F1="25" F2="Привет" />



Я знаю, что в оракле очень много пакетов(типа DBMS_XMLGEN и т.д.). Наверное есть что-то подобное?
Давать возможность делать только хмл без схемы - не очень логично, на мой взгляд .
...
Рейтинг: 0 / 0
15.01.2019, 14:33
    #39759783
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
ora1234Хотелось бы "бюджетного" решения.ora1234Наверное есть что-то подобное?
Код: plsql
1.
dbms_sql.describe_columns
...
Рейтинг: 0 / 0
15.01.2019, 15:27
    #39759833
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
ora1234Хотелось бы "бюджетного" решения.критерии бюджетности?

ora1234в мс склСпецифичные для mssql типы, отягощенные внешним xsd, могут иметь смысл для достаточно узких задач гомогенной передачи данных. Но зачем для гомогенки xml с его издержками?

ora1234возможность делать только хмл без схемы - не очень логичноXSD применяется для ограничения формата передаваемых данных, чтобы обработка могла полагаться на определенную структуру. Если структура меняется динамически и xsd построено по ней же - в чем смысл такого xsd? Заворачивать реляционное определение в xsd и потом пытаться вытащить обратно - это извращение.
...
Рейтинг: 0 / 0
15.01.2019, 15:57
    #39759860
ora1234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
[quot -2-]ora1234 Заворачивать реляционное определение в xsd и потом пытаться вытащить обратно - это извращение.
Те, кто писал сериализацию (например:датасета) этого не знали.
...
Рейтинг: 0 / 0
15.01.2019, 17:50
    #39759934
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
ora1234Те, кто писал сериализацию (например:датасета) этого не знали.Допустим "датасета", которые писали эту сериализацию таки ее написали. Опиши алгоритм дальнейшего использования xsd.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Есть ли возможность стандартными средствами сгенерить xsd по select'у? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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