XSD with "required" attribute option related query

Rajneesh Shukla <[email protected]> Fri, 21 Feb 2020 18:32:10 +0530
Newsgroups gmane.text.xml.schema.devel
Message-ID <CAFAat3-1fsxnQo7-yqc1J0hoEm_=0X+f_Hr9h4XJay-J9d9+Dg@mail.gmail.com>
--000000000000c34894059f15a1a3
Content-Type: multipart/alternative; boundary="000000000000c34892059f15a1a1"

--000000000000c34892059f15a1a1
Content-Type: text/plain; charset="UTF-8"

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.

Thanks,
Rajneesh

--000000000000c34892059f15a1a1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello All,<br><br>I am new to XSD and XML and need to expl=
ore if there is option to make sure that any one attribute in a set of attr=
ibutes within same element is required.<br><br>Example:<br><br>=C2=A0 &lt;x=
s:element name=3D&quot;where&quot; maxOccurs=3D&quot;1&quot; minOccurs=3D&q=
uot;0&quot;&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:complexType&gt=
;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:sequence&gt;<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:element name=3D&quot;c=
ondition&quot; maxOccurs=3D&quot;unbounded&quot; minOccurs=3D&quot;1&quot;&=
gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:compl=
exType&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 &lt;xs:simpleContent&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:extension base=3D&quot;xs:string&quot;&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 &lt;xs:attribute type=3D&quot;xs:string&quot; name=3D&quot;alias1&q=
uot; use=3D&quot;required&quot;/&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:attribute type=3D&quot;xs:=
string&quot; name=3D&quot;col1&quot; use=3D&quot;required&quot;/&gt;<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &=
lt;xs:attribute type=3D&quot;xs:string&quot; name=3D&quot;operator&quot; us=
e=3D&quot;required&quot;/&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:attribute type=3D&quot;xs:string&=
quot; name=3D&quot;string&quot; use=3D&quot;optional&quot;/&gt;<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;x=
s:attribute type=3D&quot;xs:string&quot; name=3D&quot;number&quot; use=3D&q=
uot;optional&quot;/&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;xs:attribute type=3D&quot;xs:string&quot; =
name=3D&quot;date&quot; use=3D&quot;optional&quot;/&gt;<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/xs:extension&g=
t;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/x=
s:simpleContent&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 &lt;/xs:complexType&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 &lt;/xs:element&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt=
;/xs:sequence&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/xs:complexType=
&gt;<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;/xs:element&gt;<br><br><div>Here I =
want to ensure that minimum one =C2=A0attribute =C2=A0in a set of 3 attribu=
tes (mentioned as optional in above) are required. All can not be optional =
, however any one (can be more than one also) is required.</div><div><br></=
div><div>Thanking you in anticipation !!!<br></div><div><br></div><div>Atta=
chment:</div><div>Complete XSD file.<br></div><br>Thanks,<br>Rajneesh</div>

--000000000000c34892059f15a1a1--
--000000000000c34894059f15a1a3
Content-Type: application/octet-stream; name=xsd design chosen
Content-Disposition: attachment; filename=xsd design chosen
Content-Transfer-Encoding: base64
Content-ID: <f_k6w6nq3u0>
X-Attachment-Id: f_k6w6nq3u0

PHhzOnNjaGVtYSBhdHRyaWJ1dGVGb3JtRGVmYXVsdD0idW5xdWFsaWZpZWQiIGVsZW1lbnRGb3Jt
RGVmYXVsdD0icXVhbGlmaWVkIiB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT
Y2hlbWEiPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJmdW5jdGlvbmFsVmlldyIgbWF4T2NjdXJzPSIx
IiBtaW5PY2N1cnM9IjEiPg0KICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgIDx4czpzZXF1ZW5j
ZT4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iY29sdW1ucyI+DQogICAgICAgICAgPHhzOmNv
bXBsZXhUeXBlPg0KICAgICAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgICA8eHM6
ZWxlbWVudCBuYW1lPSJjb2x1bW4iIG1heE9jY3Vycz0idW5ib3VuZGVkIiBtaW5PY2N1cnM9IjEi
Pg0KICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgICAgICAgIDx4
czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9
InhzOnN0cmluZyI+DQogICAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSB0eXBlPSJ4
czpzdHJpbmciIG5hbWU9Im5hbWUiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAg
ICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0iY29sdW1uQWxpYXMiIHVz
ZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9
InhzOnN0cmluZyIgbmFtZT0iZGVzY3JpcHRpb24iIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAg
ICAgICAgICAgICAgPC94czpleHRlbnNpb24+DQogICAgICAgICAgICAgICAgICA8L3hzOnNpbXBs
ZUNvbnRlbnQ+DQogICAgICAgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAg
ICAgPC94czplbGVtZW50Pg0KICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICA8
L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICA8L3hzOmVsZW1lbnQ+DQogICAgICAgIDx4czplbGVt
ZW50IG5hbWU9ImZyb212aWV3cyIgbWF4T2NjdXJzPSIxIiBtaW5PY2N1cnM9IjEiPg0KICAgICAg
ICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAg
ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZnJvbXZpZXciIG1heE9jY3Vycz0idW5ib3VuZGVkIiBt
aW5PY2N1cnM9IjIiPg0KICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCiAgICAgICAg
ICAgICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZXh0
ZW5zaW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJp
YnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9Im5hbWUiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAg
ICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0iYWxp
YXMiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgPC94czpleHRlbnNpb24+
DQogICAgICAgICAgICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICAgICAg
PC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgICAgPC94czplbGVtZW50Pg0KICAgICAgICAg
ICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICA8
L3hzOmVsZW1lbnQ+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9ImpvaW5zIiBtYXhPY2N1cnM9
IjEiIG1pbk9jY3Vycz0iMSI+DQogICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAg
ICAgPHhzOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCIgbWluT2NjdXJzPSIxIj4NCiAgICAg
ICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iam9pbiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG1p
bk9jY3Vycz0iMCI+DQogICAgICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAg
ICAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICAgICAgICAgIDx4czpleHRl
bnNpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmli
dXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0iYWxpYXMxIiB1c2U9InJlcXVpcmVkIi8+DQogICAg
ICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9ImNv
bDEiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRl
IHR5cGU9InhzOnN0cmluZyIgbmFtZT0iY29uZGl0aW9uIiB1c2U9InJlcXVpcmVkIi8+DQogICAg
ICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9ImFs
aWFzMiIgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1
dGUgdHlwZT0ieHM6c3RyaW5nIiBuYW1lPSJjb2wyIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAg
ICAgICAgICAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgICAgICAgICAgICAgICAgPC94czpzaW1w
bGVDb250ZW50Pg0KICAgICAgICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICAgICAg
ICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibGVmdG91
dGVyam9pbiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG1pbk9jY3Vycz0iMCI+DQogICAgICAgICAg
ICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZUNvbnRl
bnQ+DQogICAgICAgICAgICAgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ieHM6c3RyaW5nIj4N
CiAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFt
ZT0iYWxpYXMxIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgPHhzOmF0
dHJpYnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9ImNvbDEiIHVzZT0icmVxdWlyZWQiLz4NCiAg
ICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0i
Y29uZGl0aW9uIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgPHhzOmF0
dHJpYnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9ImFsaWFzMiIgdXNlPSJyZXF1aXJlZCIvPg0K
ICAgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgdHlwZT0ieHM6c3RyaW5nIiBuYW1l
PSJjb2wyIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDwveHM6ZXh0ZW5z
aW9uPg0KICAgICAgICAgICAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAg
ICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICAgICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAg
ICAgICAgIDwveHM6Y2hvaWNlPg0KICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICAg
IDwveHM6ZWxlbWVudD4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0id2hlcmUiIG1heE9jY3Vy
cz0iMSIgbWluT2NjdXJzPSIwIj4NCiAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAg
ICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImNvbmRp
dGlvbiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiIG1pbk9jY3Vycz0iMSI+DQogICAgICAgICAgICAg
ICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+
DQogICAgICAgICAgICAgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAg
ICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0i
YWxpYXMxIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJp
YnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9ImNvbDEiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAg
ICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0ib3Bl
cmF0b3IiIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmli
dXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0ic3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQogICAg
ICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSB0eXBlPSJ4czpzdHJpbmciIG5hbWU9Im51
bWJlciIgdXNlPSJvcHRpb25hbCIvPg0KICAgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1
dGUgdHlwZT0ieHM6c3RyaW5nIiBuYW1lPSJkYXRlIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgICAg
ICAgICAgICAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgICAgICAgICAgICAgICAgPC94czpzaW1w
bGVDb250ZW50Pg0KICAgICAgICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgICAgICAg
ICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgICAg
PC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgPC94czplbGVtZW50Pg0KICAgICAgPC94czpzZXF1
ZW5jZT4NCiAgICAgIDx4czphdHRyaWJ1dGUgdHlwZT0ieHM6c3RyaW5nIiBuYW1lPSJuYW1lIi8+
DQogICAgICA8eHM6YXR0cmlidXRlIHR5cGU9InhzOnN0cmluZyIgbmFtZT0iZGVzY3JpcHRpb24i
Lz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICA8L3hzOmVsZW1lbnQ+DQo8L3hzOnNjaGVtYT4N
Cg0K
--000000000000c34894059f15a1a3--