In the following example, the minimum cardinailites of both 'foo' and 'bar' are multipled by 0, so there is no minimum restriction on either property. In addition, 'foo' has no maximum limit so foo is unconstrained in the range of 'foobar'. Property 'bar' retains it's default cardinality of 1.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/" xmlns="http://example.org/" elementFormDefault="qualified"> <xs:element name="foobar"> <xs:complexType> <xs:choice> <xs:element name="foo" maxOccurs="unbounded"/> <xs:element name="bar" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema>
The minimum cardinality of 'foo' is 0*1. The maximum cardinality of 'foo' is 1*unbounded. This has the interesting, and perhaps counter-intuitive, effect that no restrictions on 'foo' are defined in the class definition.
The minimum cardinality of 'bar' is 0*1. The maximum cardinality of 'bar' is 1*1.
# Base: http://example.org/choice.owl @prefix ns1: <http://example.org/> . @prefix xs: <http://www.w3.org/2001/XMLSchema> . @prefix ns2: <http://example.org/def/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix daml: <http://www.daml.org/2001/03/daml+oil#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix xs_: <http://www.w3.org/2001/XMLSchema#> . @prefix : <#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . ns1:bar a rdf:Property . ns1:foobar a owl:ObjectProperty ; rdfs:range [ a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality "1"^^xs_:int ; owl:onProperty ns1:bar ] ] . ns1:foo a rdf:Property . <> a owl:Ontology .