[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • Date: Tue, 2 Jun 2015 19:00:41 +0000

Here's an idea: use the empty choice as a way to express "I'm terminating my connection with you".

 

For example, a sender creates XML documents containing data of either books, magazines, or Kindles. At some point the sender wants to signal that he will send no further XML documents. So the XML Schema is created in which one of the choices is a Halt element (of type ValidationKiller):

 

    <xs:element name="Document">

        <xs:complexType>

            <xs:choice>

                <xs:element name="Books" type="BooksType" />

                <xs:element name="Magazines" type="MagazinesType" />

                <xs:element name="Kindles" type="KindlesType" />

                <xs:element name="Halt" type="ValidationKiller" />

            </xs:choice>

        </xs:complexType>

    </xs:element>

 

where ValidationKiller is a complexType containing an empty choice:

 

<xs:complexType name="ValidationKiller">

         <xs:choice/>

</xs:complexType>

 

To halt the communication the sender sends this XML document:

 

<Document>

      <Halt/>

</Document>

 

That fails validation and thus terminates the connection.

 

Is that a reasonable use of ValidationKiller?

 

/Roger

 

 

From: Costello, Roger L.
Sent: Tuesday, June 02, 2015 1:45 PM
To: xml-dev@l...
Subject: Use-case for a complex type that has no valid content?

 

Hi Folks,

 

Thanks for the outstanding responses.

 

I have learned that an empty choice:

 

    <xs:complexType name="ValidationKiller">
       
<xs:choice/>
   
</xs:complexType>

 

has no valid content, i.e., the set of valid content is the empty set, {}.

 

When would one use such a complex type? Can you think of a use-case for it?

 

/Roger



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member