/ / Jak przedefiniować typ schematu XML bez przedefiniowania? - xml, oracle, xsd, oracle11g, redefine

Jak przedefiniować typ schematu XML bez przedefiniowania? - xml, oracle, xsd, oracle11g, redefiniować

To jest moje pytanie do kontynuacji poprzednie pytanie.

Mam pliki XML i schemat XML dostarczone przez kilka różnych stron trzecich. Z tajemniczych powodów Oracle wymaga Adnotacja specyficzna dla Oracle być w stanie zweryfikować xs:dateTime z poprawnymi informacjami o strefie czasowej.

Po długich debatach z Google Dowiedziałem się, że mogę dodać wymaganą adnotację Oracle nieinwazyjnie (tj. Bez modyfikowania oryginalnego schematu XML) za pomocą Schemat XML został ponownie zdefiniowany.

Schemat XML dostarczony przez firmę zewnętrzną jest następujący:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime"/>
</xs:simpleType>

</xs:schema>

I mógłbym wprowadzić adnotację w ten sposób, używając przedefiniowania:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb">

<xs:redefine schemaLocation="standard-schema.xsd">

<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE"/>
</xs:simpleType>

</xs:redefine>

</xs:schema>

Niestety według Dokumentacja Oracle redefine jest jedyną funkcją schematu XML nieobsługiwaną przez Oracle XML Database:

Obsługa schematu XML

[...] Oracle XML DB obsługuje wszystkie konstrukcje zdefiniowane w Rekomendacji schematu XML, z wyjątkiem redefines.

(A moje eksperymenty potwierdzają to stwierdzenie.)

Jakie opcje, jeśli istnieją, muszę dodać wymagane xdb:SQLType adnotacja bez modyfikowania oryginalnego schematu XML?

Korzystam z Oracle Database 11g Release 11.2.0.4.0.

Odpowiedzi:

1 dla odpowiedzi № 1

Zdefiniuj prostą transformację XSLT, która dodaje adnotację, i uruchom ją, ilekroć zajdzie potrzeba wygenerowania schematu Oracle ze schematu innej firmy.