powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как можно связать 2 xsd с помощью import?
1 сообщений из 1, страница 1 из 1
Как можно связать 2 xsd с помощью import?
    #39534855
Valentina88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Имею 2 xsd - один основной, второй содержит импортируемые типы.
Основной xsd:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<xs:schema 
xmlns:xdb="http://xmlns.oracle.com/xdb" 
xmlns:xs ="http://www.w3.org/2001/XMLSchema"
xmlns:cmn="http://NamespaceTest.com/CommonTypes.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <xs:import namespace="http://NamespaceTest.com/CommonTypes.xsd" schemaLocation="CommonTypes.xsd" />
    <xs:element name="DOCUMENT" type="DOCUMENTType" />
    <xs:complexType name="DOCUMENTType" xdb:SQLType="Doc_1_Type">
        <xs:sequence>
            <xs:element name="HEADER" type="cmn:HEADERType" minOccurs="1" maxOccurs="1"/>
            <xs:element name="BODY"  type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="FOOTER"  type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>



Импортируемый xsd:
[Spoiler]
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
targetNamespace="http://NamespaceTest.com/CommonTypes.xsd"
xmlns="http://NamespaceTest.com/CommonTypes.xsd">  
    <xs:element name="HEADER" type="HEADERType"/>
    <xs:complexType name="HEADERType"  xdb:SQLType="HEADER_T">
        <xs:sequence>
            <xs:element name="DOC_ID" type="DOC_IDType" minOccurs="0" xdb:SQLType="NUMBER"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="DOC_IDType">
        <xs:restriction base="xs:int">
            <xs:totalDigits value="18"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>



Проверяемый документ:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="windows-1251"?>
<DOCUMENT>
    <HEADER>
        <DOC_ID>14</DOC_ID>
    </HEADER>
    <BODY>str4</BODY>
    <FOOTER>str2</FOOTER>
</DOCUMENT>



В таком формате документ корректно проверяется в некоторых API , например Liquid Studio. Однако Оракл такой формат не устраивает. При валидации возникает ошибка:
Код: plsql
1.
ORA-31043: Element 'DOCUMENT' not globally defined in schema 'CommonTypes.xsd'


Проблема решается добавлением в корневой тэг проверяемого документа параметров:
Код: xml
1.
2.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="Doc227.xsd"


Однако загвоздка в том, что нет возможности менять формат XML документов. И мне, с точки зрения логики, не понятно, зачем указывать конкретный xsd в параметрах xml, если это явно делается при вызове функции валидации из pl/sql.
По сему вопрос - как можно реализовать использование импортируемых типов в xsd не меняя формат xml документа и выполнимо ли это в принципе ?
Спасибо за внимание.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как можно связать 2 xsd с помощью import?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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