choice

The choice compositor determines how property cardinalities are derived. Because only one choice may occur, each has a minimum cardinality of 0. The maximum is set by maxOccurs. These values are multiplied by the cardinalities of nested components to produce the derived cardinailities.

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 .

Child components


Generated on Mon Jun 18 16:02:37 2007 for Gloze by  doxygen 1.5.0