XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Why does XML Schema allow elements with complex type tobe nillable?

And to the question of what other  languages all nillability, the answer is none. It was supposed to correspond to nullability, but then when it was pointed out it did not match, it was named nillable. (I regret this was not nillible and nillibility. Like the Beverley Nillibillies.)

I think one of the few scenarios that was in place is where you have a record update format. Say like
 update ::= record*
  record ::= data,  @key
  data ::= whatever*,  $nillible

So your update has entries for all records in the new database. If there is no record sent with a key for record in the current darabase, delete that record. If it is an unknown key, create the record. If the item is nilled, leave it alone if it is present,  or otherwise generate an error. Otherwise update with the new information. 

This way gets rid of the need for a verb based protocol, and provides some refundancy catches some integrity errors, such as where a previous create or delete went missing. But mainly for compression, so you dont send data you know has not changed.

I think it should be removed, and replaced by conditionals.


Don't shoot me!
Cheers
Rick
  

On Thu, 11 Jul. 2019, 23:17 Costello, Roger L., <costello@mitre.org> wrote:

Hi Folks,

 

XML Schema allows elements with simple type to be nillable. For example, for the real world use case of some people not having a middle name, I declare a nillable <MiddleName> element:

 

<xsd:element name="MiddleName" nillable="true" type="xsd:string" />

 

Then I can create XML instance documents for people that do not have a middle name:

 

<Name>

    <FirstName>John</FirstName>

    <MiddleName xsi:nil="true"></MiddleName>

    <LastName>Doe</LastName>

</Name>

 

Nice!

 

XML Schema also allows elements with complex type to be nillable. Thus, I could declare the <Name> element to be nillable:

 

<xsd:element name="Name" nillable="true">

    <xsd:complexType>

        <xsd:sequence>

            <xsd:element name="FirstName" type="xsd:string" />

            <xsd:element name="MiddleName" nillable="true" type="xsd:string" />

            <xsd:element name="LastName" type="xsd:string" />

        </xsd:sequence>

    </xsd:complexType>

</xsd:element>

 

And then I can create XML instance documents with <Name> elements having a nil value:

 

<Name xsi:nil="true" />

 

Why?

 

Why did the XML Schema working group allow elements with complex type to be nillable?

 

Did the XML Schema working group examine other real world data formats and discover that some of them allow regions with complex content to be nillable? If yes, what are those other real world data formats that allow regions with complex content to be nillable?

 

/Roger



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


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS