Re: XSD with "required" attribute option related query
Rajneesh Shukla <[email protected]> Mon, 24 Feb 2020 20:30:31 +0530
| Newsgroups | gmane.text.xml.schema.devel |
|---|---|
| Message-ID | <CAFAat38qhHcGoTuJXzNW7Z_D0GXjtr=2Oz1cvPa_QD6-kJTk5Q@mail.gmail.com> |
--0000000000007bb9a2059f53a219
Content-Type: text/plain; charset="UTF-8"
Hi Mukul,
One more help please:
Is it possible to impose required constraint at value level?
for example in below xml, I wnt to make sure value for alias1, coli1 and
operator is always populated in condition element within where element.
functionalView name="CLAIMS_FV" description="Learning Purpose">
<columns>
<column name="CLAI.CODE" columnAlias="CODE" description="The code of
the claim" />
<column name="CLLI.CODE" columnAlias="LINE_CODE" description="The
code of the claim line" />
<column name="PROC.CODE" columnAlias="PROC_CODE" description="The
code of the claim line procedure" />
</columns>
<fromviews>
<fromview name="CLAIMS_V" alias="CLAI" />
<fromview name="LINES_V" alias="CLLI" />
<fromview name="PROC_V" alias="PROC" />
<fromview name="PROV_V" alias="PROV" />
<fromview name="FORMS_V" alias="CLFO"/>
<fromview name="FORMTYPES_V" alias="CFTY"/>
</fromviews>
<joins>
<join alias1="CLLI" col1="CLAI_ID" condition="=" alias2="CLAI"
col2="ID"/>
<join alias1="CLFO" col1="ID" condition="=" alias2="CFTY"
col2="CLFO_ID"/>
<join alias1="CFTY" col1="ID" condition="=" alias2="PROC"
col2="CFTY_ID"/>
<leftouterjoin alias1="PROV" col1="ID" condition="=" alias2="CLAI"
col2="PROVIDER_ID"/>
</joins>
<where>
<condition alias1="CFTY" col1="CODE" operator="=" string=""
number="" date= "" />
</where>
</functionalView>
Thanks,
Rajneesh
On Mon, 24 Feb 2020 at 13:39, Rajneesh Shukla <[email protected]>
wrote:
> Hi Mukul,
>
> Thanks for your reply.
>
> I am working inside the database, it won't be possible.
>
> Oracle XML DB only supports XML Schema 1.0.
>
>
> Thanks,
>
> Rajneesh
>
> On Sat, 22 Feb 2020 at 11:27, Mukul Gandhi <[email protected]> wrote:
>
>> Hi Rajneesh,
>> Within the XSD document you've attached, following is a XSD issue to
>> start with (using Xerces-J 2.12.1 as XSD validator),
>>
>> [Error] query1.xsd:3:67: s4s-att-not-allowed: Attribute 'maxOccurs'
>> cannot appear in element 'element'.
>> [Error] query1.xsd:3:67: s4s-att-not-allowed: Attribute 'minOccurs'
>> cannot appear in element 'element'.
>>
>> i.e, the following is not allowed by XSD language,
>>
>> <xs:schema attributeFormDefault="unqualified"
>> elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema
>> ">
>>
>> <xs:element name="functionalView" maxOccurs="1" minOccurs="1">
>> ...
>>
>> </xs:schema>
>>
>> Removing, maxOccurs="1" minOccurs="1" from above shown xs:element
>> declaration from your attached XSD document, makes your XSD document
>> correct (with both 1.0 and 1.1 versions of XSD language).
>>
>> Now coming to your question.
>> I think that, the issue you've mentioned can be solved using an XSD 1.1
>> <assert> instruction. I guess that, you can rewrite your XSD fragment to
>> following (I've only added an <assert>), to achieve what you've mentioned,
>>
>> <xs:element name="where" maxOccurs="1" minOccurs="0">
>> <xs:complexType>
>> <xs:sequence>
>> <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="optional"/>
>> <xs:assert
>> test="exists(@string | @number | @date)"/>
>> </xs:extension>
>> </xs:simpleContent>
>> </xs:complexType>
>> </xs:element>
>> </xs:sequence>
>> </xs:complexType>
>> </xs:element>
>>
>> I've not tested, the logic of <assert> I've mentioned above.
>>
>> Could be useful information to share that, you may use the full XPath 2.0
>> language, to write value of 'test' attribute of an <assert>. Also, 1 upto
>> any number of <assert> elements can be written as siblings in the XSD
>> document (all of the sibling <assert> elements, have to evaluate to true
>> for having the XML instance document valid).
>>
>> On Fri, Feb 21, 2020 at 11:16 PM Rajneesh Shukla <
>> [email protected]> wrote:
>>
>>> Hello All,
>>>
>>> I am new to XSD and XML and need to explore if there is option to make
>>> sure that any one attribute in a set of attributes within same element is
>>> required.
>>>
>>> Example:
>>>
>>> <xs:element name="where" maxOccurs="1" minOccurs="0">
>>> <xs:complexType>
>>> <xs:sequence>
>>> <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="optional"/>
>>> </xs:extension>
>>> </xs:simpleContent>
>>> </xs:complexType>
>>> </xs:element>
>>> </xs:sequence>
>>> </xs:complexType>
>>> </xs:element>
>>>
>>> Here I want to ensure that minimum one attribute in a set of 3
>>> attributes (mentioned as optional in above) are required. All can not be
>>> optional , however any one (can be more than one also) is required.
>>>
>>> Thanking you in anticipation !!!
>>>
>>> Attachment:
>>> Complete XSD file.
>>>
>>
>>
>>
>> --
>> Regards,
>> Mukul Gandhi
>>
>
--0000000000007bb9a2059f53a219
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hi Mukul,</div><div><br></div><div>One more help plea=
se:</div><div><br></div><div>Is it possible to impose required constraint a=
t value level?</div><div>for example in below xml, I wnt to make sure value=
for alias1, coli1 and operator is always populated in condition element wi=
thin where element.</div><div><br></div><div>functionalView name=3D"CL=
AIMS_FV" =C2=A0description=3D"Learning Purpose"><br><br>=
=C2=A0 <columns><br><br>=C2=A0 =C2=A0 <column name=3D"CLAI.CO=
DE" =C2=A0 columnAlias=3D"CODE" =C2=A0description=3D"Th=
e code of the claim" /><br><br>=C2=A0 =C2=A0 <column name=3D&quo=
t;CLLI.CODE" =C2=A0 columnAlias=3D"LINE_CODE" =C2=A0descript=
ion=3D"The code of the claim line" /><br><br>=C2=A0 =C2=A0 <=
;column name=3D"PROC.CODE" =C2=A0 columnAlias=3D"PROC_CODE&q=
uot; =C2=A0description=3D"The code of the claim line procedure" /=
><br><br>=C2=A0 </columns><br><br>=C2=A0 <fromviews><br><br>=
=C2=A0 =C2=A0 <fromview name=3D"CLAIMS_V" alias=3D"CLAI&q=
uot; /><br><br>=C2=A0 =C2=A0 <fromview name=3D"LINES_V" ali=
as=3D"CLLI" /><br><br>=C2=A0 =C2=A0 <fromview name=3D"=
PROC_V" alias=3D"PROC" /><br><br>=C2=A0 =C2=A0 <fromvi=
ew name=3D"PROV_V" alias=3D"PROV" /><br><br>=C2=A0 =
=C2=A0 <fromview name=3D"FORMS_V" alias=3D"CLFO"/>=
;<br><br>=C2=A0 =C2=A0 <fromview name=3D"FORMTYPES_V" alias=3D=
"CFTY"/><br><br>=C2=A0 </fromviews><br><br>=C2=A0 <jo=
ins><br><br>=C2=A0 =C2=A0 <join =C2=A0alias1=3D"CLLI" col1=
=3D"CLAI_ID" condition=3D"=3D" =C2=A0alias2=3D"CLA=
I" col2=3D"ID"/><br><br>=C2=A0 =C2=A0 <join =C2=A0alia=
s1=3D"CLFO" col1=3D"ID" condition=3D"=3D" =C2=
=A0alias2=3D"CFTY" col2=3D"CLFO_ID"/><br><br>=C2=A0 =
=C2=A0 <join =C2=A0alias1=3D"CFTY" col1=3D"ID" condi=
tion=3D"=3D" =C2=A0alias2=3D"PROC" col2=3D"CFTY_ID=
"/><br><br>=C2=A0 =C2=A0 <leftouterjoin =C2=A0alias1=3D"PRO=
V" col1=3D"ID" condition=3D"=3D" =C2=A0alias2=3D&q=
uot;CLAI" col2=3D"PROVIDER_ID"/><br><br>=C2=A0 </joins=
><br><br>=C2=A0 <where><br><br>=C2=A0 =C2=A0 <condition alias1=
=3D"CFTY" col1=3D"CODE" =C2=A0operator=3D"=3D"=
; =C2=A0string=3D"" =C2=A0 number=3D"" date=3D "&q=
uot; =C2=A0 =C2=A0/><br><br>=C2=A0 </where><br><br></functional=
View></div><div><br></div><div>Thanks,</div><div>Rajneesh<br></div></div=
><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mo=
n, 24 Feb 2020 at 13:39, Rajneesh Shukla <<a href=3D"mailto:rajneeshshuk=
[email protected]">[email protected]</a>> wrote:<br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Hi Mukul,</div>=
<div><br></div><div>Thanks for your reply.</div><div>
<p>I am=C2=A0 working inside the database, it won't be possible.</p><p>=
Oracle XML DB only supports XML Schema 1.0.</p><p><br></p><p>Thanks,</p><p>=
Rajneesh<br></p>
</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_=
attr">On Sat, 22 Feb 2020 at 11:27, Mukul Gandhi <<a href=3D"mailto:gand=
[email protected]" target=3D"_blank">[email protected]</a>> wrote:=
<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8=
ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr=
"><div dir=3D"ltr">Hi Rajneesh,=C2=A0<br></div>=C2=A0 =C2=A0 Within the XSD=
document you've attached, following is a XSD issue to start with (usin=
g Xerces-J 2.12.1 as XSD validator),<br><br>[Error] query1.xsd:3:67: s4s-at=
t-not-allowed: Attribute 'maxOccurs' cannot appear in element '=
element'.<br>[Error] query1.xsd:3:67: s4s-att-not-allowed: Attribute &#=
39;minOccurs' cannot appear in element 'element'.<br><br>i.e, t=
he following is not allowed by XSD language,<br><br><xs:schema attribute=
FormDefault=3D"unqualified" elementFormDefault=3D"qualified&=
quot; xmlns:xs=3D"<a href=3D"http://www.w3.org/2001/XMLSchema" target=
=3D"_blank">http://www.w3.org/2001/XMLSchema</a>"><br><br>=C2=A0 =
=C2=A0 <xs:element name=3D"functionalView" maxOccurs=3D"1=
" minOccurs=3D"1"><br>=C2=A0 =C2=A0 ...<br><br></xs:sc=
hema><br><br>Removing, maxOccurs=3D"1" minOccurs=3D"1&quo=
t; from above shown xs:element declaration from your attached XSD document,=
makes your XSD document correct (with both 1.0 and 1.1 versions of XSD lan=
guage).<br><br>Now coming to your question.<br>I think that, the issue you&=
#39;ve mentioned can be solved using an XSD 1.1 <assert> instruction.=
I guess that, you can rewrite your XSD fragment to following (I've onl=
y added an <assert>), to achieve what you've mentioned,<br><br>&l=
t;xs:element name=3D"where" maxOccurs=3D"1" minOccurs=
=3D"0"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0<xs:complexType><b=
r>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<xs:sequence><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<xs=
:element name=3D"condition" maxOccurs=3D"unbounded" min=
Occurs=3D"1"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<xs:complexType><br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<xs:simpleContent><br>=C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<xs:extension base=3D"=
xs:string"><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribute type=3D"xs:string" n=
ame=3D"alias1" use=3D"required"/><br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:a=
ttribute type=3D"xs:string" name=3D"col1" use=3D"r=
equired"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribute type=3D"xs:string" n=
ame=3D"operator" use=3D"required"/><br>=C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:a=
ttribute type=3D"xs:string" name=3D"string" use=3D"=
;optional"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribute type=3D"xs:string&quo=
t; name=3D"number" use=3D"optional"/><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <x=
s:attribute type=3D"xs:string" name=3D"date" use=3D&quo=
t;optional"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:assert test=3D"exists(@string |=
@number | @date)"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0</xs:extension><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:=
simpleContent><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0</xs:complexType><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0</xs:e=
lement><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </=
xs:sequence><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0</xs:complexType>=
;<div></xs:element></div><div><br></div><div>I've not tested, the=
logic of <assert> I've mentioned above.</div><div><br></div><div=
>Could be useful information to share that, you may use the full XPath 2.0 =
language, to write value of 'test' attribute of an <assert>. =
Also, 1 upto any number of <assert> elements can be written as siblin=
gs in the XSD document (all of the sibling <assert> elements, have to=
evaluate to true for having the XML instance document valid).</div><div><b=
r><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, =
Feb 21, 2020 at 11:16 PM Rajneesh Shukla <<a href=3D"mailto:rajneeshshuk=
[email protected]" target=3D"_blank">[email protected]</a>> wrote:<br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">He=
llo All,<br><br>I am new to XSD and XML and need to explore if there is opt=
ion to make sure that any one attribute in a set of attributes within same =
element is required.<br><br>Example:<br><br>=C2=A0 <xs:element name=3D&q=
uot;where" maxOccurs=3D"1" minOccurs=3D"0"><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:complexType><br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:sequence><br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 <xs:element name=3D"condition" maxOcc=
urs=3D"unbounded" minOccurs=3D"1"><br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:complexType><br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:simpleConten=
t><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 <xs:extension base=3D"xs:string"><br>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribut=
e type=3D"xs:string" name=3D"alias1" use=3D"requir=
ed"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 <xs:attribute type=3D"xs:string" name=3D&=
quot;col1" use=3D"required"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribute type=
=3D"xs:string" name=3D"operator" use=3D"required&q=
uot;/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
=C2=A0 =C2=A0 <xs:attribute type=3D"xs:string" name=3D"s=
tring" use=3D"optional"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:attribute type=3D&q=
uot;xs:string" name=3D"number" use=3D"optional"/&g=
t;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
=C2=A0 <xs:attribute type=3D"xs:string" name=3D"date&quo=
t; use=3D"optional"/><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:extension><br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:simpleContent><=
br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:complexT=
ype><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:element=
><br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:sequence><br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 </xs:complexType><br>=C2=A0 =C2=A0=
=C2=A0 =C2=A0 </xs:element><br><br><div>Here I want to ensure that m=
inimum one =C2=A0attribute =C2=A0in a set of 3 attributes (mentioned as opt=
ional in above) are required. All can not be optional , however any one (ca=
n be more than one also) is required.</div><div><br></div><div>Thanking you=
in anticipation !!!<br></div><div><br></div><div>Attachment:</div><div>Com=
plete XSD file.</div></div></blockquote><div>=C2=A0</div></div><br clear=3D=
"all"><div><br></div>-- <br><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"l=
tr"><div dir=3D"ltr"><div>Regards,<br>Mukul Gandhi</div></div></div></div><=
/div></div></div>
</blockquote></div>
</blockquote></div>
--0000000000007bb9a2059f53a219--