- From: Rajneesh Shukla <rajneeshshukla@gmail.com>
- Date: Tue, 25 Feb 2020 12:59:28 +0530
- To: Mukul Gandhi <gandhi.mukul@gmail.com>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
- Message-ID: <CAFAat38FpJ0gv1FBwTNpLCz==yDDE3egA7yxc=nJDnPe_oodvQ@mail.gmail.com>
Hello Mukul,
Thanks for your time and response.
I tried your recommended steps with xml 1.0, but in vain.
It seems it is not allowed:
Below is XSD after replacement:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="functionalView">
<xs:complexType>
<xs:sequence>
<xs:element name="columns">
<xs:complexType>
<xs:sequence>
<xs:element name="column" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name"
use="required"/>
<xs:attribute type="xs:string" name="columnAlias"
use="required"/>
<xs:attribute type="xs:string" name="description"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="fromviews" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="fromview" maxOccurs="unbounded"
minOccurs="2">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name"
use="required"/>
<xs:attribute type="xs:string" name="alias"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="joins" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="1">
<xs:element name="join" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="alias1"
use="required"/>
<xs:attribute type="xs:string" name="col1"
use="required"/>
<xs:attribute type="xs:string" name="condition"
use="required"/>
<xs:attribute type="xs:string" name="alias2"
use="required"/>
<xs:attribute type="xs:string" name="col2"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="leftouterjoin" maxOccurs="unbounded"
minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="alias1"
use="required"/>
<xs:attribute type="xs:string" name="col1"
use="required"/>
<xs:attribute type="xs:string" name="condition"
use="required"/>
<xs:attribute type="xs:string" name="alias2"
use="required"/>
<xs:attribute type="xs:string" name="col2"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="where" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:choice>
<xs:element name="condition" maxOccurs="unbounded"
minOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="alias1"
use="required"/>
<xs:attribute type="xs:string" name="col1"
use="required"/>
<xs:attribute type="xs:string" name="operator"
use="required"/>
<xs:attribute type="xs:string" name="string"
use="required"/>
<xs:attribute type="xs:string" name="number"
use="optional"/>
<xs:attribute type="xs:string" name="date"
use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="condition" maxOccurs="unbounded"
minOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="alias1"
use="required"/>
<xs:attribute type="xs:string" name="col1"
use="required"/>
<xs:attribute type="xs:string" name="operator"
use="required"/>
<xs:attribute type="xs:string" name="string"
use="optional"/>
<xs:attribute type="xs:string" name="number"
use="required"/>
<xs:attribute type="xs:string" name="date"
use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="condition" maxOccurs="unbounded"
minOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string"
name="alias1" use="required"/>
<xs:attribute type="xs:string" name="col1"
use="required"/>
<xs:attribute type="xs:string"
name="operator" use="required"/>
<xs:attribute type="xs:string"
name="string" use="optional"/>
<xs:attribute type="xs:string"
name="number" use="optional"/>
<xs:attribute type="xs:string" name="date"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:string" name="description"/>
</xs:complexType>
</xs:element>
</xs:schema>
Below is error message received where tried to register it with Oracle 12c
db:
ORA-31154: invalid XML document
ORA-19202: Error occurred in XML processing
LSX-00102: duplicate element "condition"
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 72
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 33
ORA-06512: at line 132
31154. 00000 - "invalid XML document"
*Cause: The XML document is invalid with respect to its XML Schema.
*Action: Fix the errors identified and try again.
Thanks,
Rajneesh
On Tue, 25 Feb 2020 at 06:54, Mukul Gandhi <gandhi.mukul@gmail.com> wrote:
> Hi Rajneesh,
> It seems to me that, this issue may be solved with XML Schema 1.0 as
> well.
>
> Within your schema document, please try replacing following XSD element
> declaration,
>
> <xs:element name="where" maxOccurs="1" minOccurs="0">
> ...
>
> with
>
> <xs:element name="where" maxOccurs="1" minOccurs="0">
> <xs:complexType>
> <xs:choice>
> <xs:element name="condition" maxOccurs="unbounded"
> minOccurs="1">
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute type="xs:string" name="alias1"
> use="required"/>
> <xs:attribute type="xs:string" name="col1"
> use="required"/>
> <xs:attribute type="xs:string" name="operator"
> use="required"/>
> <xs:attribute type="xs:string" name="string"
> use="required"/>
> <xs:attribute type="xs:string" name="number"
> use="optional"/>
> <xs:attribute type="xs:string" name="date"
> use="optional"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> <xs:element name="condition" maxOccurs="unbounded"
> minOccurs="1">
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute type="xs:string" name="alias1"
> use="required"/>
> <xs:attribute type="xs:string" name="col1"
> use="required"/>
> <xs:attribute type="xs:string"
> name="operator" use="required"/>
> <xs:attribute type="xs:string" name="string"
> use="optional"/>
> <xs:attribute type="xs:string" name="number"
> use="required"/>
> <xs:attribute type="xs:string" name="date"
> use="optional"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> <xs:element name="condition" maxOccurs="unbounded"
> minOccurs="1">
> <xs:complexType>
> <xs:simpleContent>
> <xs:extension base="xs:string">
> <xs:attribute type="xs:string"
> name="alias1" use="required"/>
> <xs:attribute type="xs:string" name="col1"
> use="required"/>
> <xs:attribute type="xs:string"
> name="operator" use="required"/>
> <xs:attribute type="xs:string"
> name="string" use="optional"/>
> <xs:attribute type="xs:string"
> name="number" use="optional"/>
> <xs:attribute type="xs:string" name="date"
> use="required"/>
> </xs:extension>
> </xs:simpleContent>
> </xs:complexType>
> </xs:element>
> </xs:choice>
> </xs:complexType>
> </xs:element>
>
> I've replaced one of the <sequence> with <choice>.
>
> On Mon, Feb 24, 2020 at 1:39 PM Rajneesh Shukla <rajneeshshukla@gmail.com>
> wrote:
>
>
>> I am working inside the database, it won't be possible.
>>
>> Oracle XML DB only supports XML Schema 1.0.
>>
>
>
>
> --
> Regards,
> Mukul Gandhi
>
Received on Tuesday, 25 February 2020 07:29:52 UTC