my dog learned polymorphism*
The moose likes XML and Related Technologies and the fly likes [XSD] complexType conditional Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » XML and Related Technologies
Bookmark "[XSD] complexType conditional" Watch "[XSD] complexType conditional" New topic
Author

[XSD] complexType conditional

Brian Grey
Ranch Hand

Joined: Nov 15, 2002
Posts: 43
XML FILE:
<wap-provisioningdoc version="1.0">
<characteristic type="BOOTSTRAP">
<parm name="PROVURL" value="http://55555"/>
</characteristic>
<characteristic type="PXLOGICAL">
<parm name="PROXY-ID" value="PROXY1"/>
<parm name="NAME" value="Proxy 1"/>
<parm name="STARTPAGE" value="Homepage_URL"/>
<characteristic type="PORT">
<parm name="PORTNBR" value="8080"/>
</characteristic>
<characteristic type="PXPHYSICAL">
<parm name="PXADDR" value="131.111.3.4"/>
<parm name="PXADDRTYPE" value="IPV4"/>
<parm name="TO-NAPID" value="Browsing_GPRS"/>
</characteristic>
</characteristic>
.....


I'd like to use a XML schema file to perform validation tests. The XML to test is very particular. I will try to give you a clear explanation.

For instance an element characteristic that has an attribute type "PXLOGICAL" can occur 0 or more times. If it exists, the element parm with name "NAME" MUST exist, the others are optional.

How can do this? How can I create different "complexType" and used them depending of the characteristic type?

<xs:complexType name="characteristicType">
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="BOOTSTRAP"/> (occur 0 or more)
<xs:enumeration value="PXLOGICAL"/> (occur 0 or more) But if exits, should follow parmTypePXLOGICAL rules
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>


<xs:complexType name="parmTypePXLOGICAL">
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="PROXY-ID"/> (the paramater is required)
<xs:enumeration value="NAME"/> (the paramater is required)
<xs:enumeration value="STARTPAGE"/> (occur 0 or 1 time)
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: [XSD] complexType conditional