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



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

зачем xsd генерить?
...
Рейтинг: 0 / 0
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759482
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-, надо.
Необходимо знать тип данных. Например: 25 - строка или число.
...
Рейтинг: 0 / 0
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759489
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234Необходимо знать тип данных. Например: 25 - строка или число.Для этого мало "сгенерить" xsd. Нужно еще по нему генерить сам xml. Иначе число, записанное как ,123e-05 или null, не пройдет валидацию.
...
Рейтинг: 0 / 0
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759561
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартное средство
Код: 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
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759769
ora1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-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
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759783
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234Хотелось бы "бюджетного" решения.ora1234Наверное есть что-то подобное?
Код: plsql
1.
dbms_sql.describe_columns
...
Рейтинг: 0 / 0
Есть ли возможность стандартными средствами сгенерить xsd по select'у?
    #39759833
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ora1234Хотелось бы "бюджетного" решения.критерии бюджетности?

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

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


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