Re: [Sipping] Pre pub-request feedback on draft-ietf-sipping-uri-list-message-05

Jari Urpalainen <jari.urpalainen@nokia.com> Fri, 27 January 2006 09:43 UTC

Received: from localhost.cnri.reston.va.us ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1F2Q8u-0000Uh-Hi; Fri, 27 Jan 2006 04:43:44 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1F2Q8s-0000T9-85 for sipping@megatron.ietf.org; Fri, 27 Jan 2006 04:43:42 -0500
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id EAA21754 for <sipping@ietf.org>; Fri, 27 Jan 2006 04:42:09 -0500 (EST)
Received: from mgw-ext03.nokia.com ([131.228.20.95]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1F2QIy-0007tV-18 for sipping@ietf.org; Fri, 27 Jan 2006 04:54:10 -0500
Received: from esebh108.NOE.Nokia.com (esebh108.ntc.nokia.com [172.21.143.145]) by mgw-ext03.nokia.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id k0R9cUAY024283; Fri, 27 Jan 2006 11:38:37 +0200
Received: from esebh001.NOE.Nokia.com ([172.21.138.28]) by esebh108.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 27 Jan 2006 11:43:27 +0200
Received: from mgw-int2.ntc.nokia.com ([172.21.143.97]) by esebh001.NOE.Nokia.com with Microsoft SMTPSVC(5.0.2195.6881); Fri, 27 Jan 2006 11:43:26 +0200
Received: from kusti.research.nokia.com (mgw.research.nokia.com [172.21.56.13]) by mgw-int2.ntc.nokia.com (Switch-2.2.8/Switch-2.2.8) with ESMTP id k0R9hQF17206; Fri, 27 Jan 2006 11:43:26 +0200 (EET)
Received: from [172.21.34.145] (hed034-145.research.nokia.com [172.21.34.145]) by kusti.research.nokia.com (Postfix) with ESMTP id 4B57393B82; Fri, 27 Jan 2006 11:43:26 +0200 (EET)
Message-ID: <43D9EB3E.3070704@nokia.com>
Date: Fri, 27 Jan 2006 11:43:26 +0200
From: Jari Urpalainen <jari.urpalainen@nokia.com>
User-Agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: ext Dean Willis <dean.willis@softarmor.com>, jdrosen@cisco.com
Subject: Re: [Sipping] Pre pub-request feedback on draft-ietf-sipping-uri-list-message-05
References: <C90022F6-4A47-411F-8E23-9F11F56BD270@softarmor.com> <43D8FB21.60201@nokia.com> <4756BAC6-F96A-4462-9180-DBBB6411C663@softarmor.com>
In-Reply-To: <4756BAC6-F96A-4462-9180-DBBB6411C663@softarmor.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 27 Jan 2006 09:43:26.0594 (UTC) FILETIME=[1F351620:01C62326]
X-Spam-Score: 0.6 (/)
X-Scan-Signature: 93df555cbdbcdae9621e5b95d44b301e
Content-Transfer-Encoding: 7bit
Cc: Miguel Garcia <Miguel.An.Garcia@nokia.com>, Sipping List <sipping@ietf.org>, Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com>, Allison Mankin <mankin@psg.com>
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
Sender: sipping-bounces@ietf.org
Errors-To: sipping-bounces@ietf.org

ext Dean Willis wrote:

>
> On Jan 26, 2006, at 10:38 AM, Miguel Garcia wrote:
>
>
>
>>> Question: Did anybody formally validate the schema and XML doc in  
>>> the example? I'm not an XML guy. Somebody please tell me you've  
>>> validated it.
>>>
>>
>> Yes, I validated the schema with XMLSpy and it is valid.
>>
>> However, I also validated with the validator at http:// 
>> validate.openlaboratory.net/ and it complains about the Unique  
>> Particle Attribution rule of the resource-list XML Schema (not  about 
>> the MESSAGE exploder draft itself).  The issue has been  discussed in 
>> the SIMPLE mailing list, see http://www.ietf.org/mail- 
>> archive/web/simple/current/msg05954.html
>> Unfortunately, there is nothing I can do to solve this problem,  
>> since there is nothing wrong in the XML Schema or the example in  
>> this draft.
>
>
> Hmm. That's supposedly the validator we'll be tested against. Jari  
> should know about it . . .
>
> in fact, he said:
>
> "Good catch, yes this schema violates the infamous Unique Particle
> Attribution (UPA) constraint (well yet another example that we should
> switch using RELAX NG ;-)). It is not about recursion it is about
> overlapping wildcards. So the first definition should be removed. Also
> there are some processContents="lax" definitions that seem to be
> missing, 48hours ?"
>
> so perhaps Jari can now help us figure out what needs to be done.
>
> HELP! Please?
>
in order to be concrete I'll include a proposal to fix xcap-list schema, 
which can be fixed within author's 48 hours, I'll hope ?

xcap-list spec has an UPA bug, the listType has two overlapping 
wildcards (<xs:any>) and e.g the second one can be removed without 
loosing extensibility:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:resource-lists"
    xmlns="urn:ietf:params:xml:ns:resource-lists"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
     schemaLocation="http://www.w3.org/2001/xml.xsd"/>

    <xs:complexType name="listType">
     <xs:sequence>
      <xs:element name="display-name" type="display-nameType" 
minOccurs="0"/>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
       <xs:choice>
        <xs:element name="list">
         <xs:complexType>
          <xs:complexContent>
           <xs:extension base="listType"/>
          </xs:complexContent>
         </xs:complexType>
        </xs:element>
        <xs:element name="external" type="externalType"/>
        <xs:element name="entry" type="entryType"/>
        <xs:element name="entry-ref" type="entry-refType"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0"
                maxOccurs="unbounded"/>
       </xs:choice>
      </xs:sequence>

<!--      <xs:any namespace="##other" minOccurs="0" 
maxOccurs="unbounded"/> -->
     </xs:sequence>
     <xs:attribute name="name" type="xs:string" use="optional"/>
     <xs:anyAttribute namespace="##other"/>
    </xs:complexType>
...

However,  processContents="strict" is the default value. Attributes do 
not have UPA constraint and they are hardly ever namespace qualified, so 
my preference would be:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:resource-lists"
    xmlns="urn:ietf:params:xml:ns:resource-lists"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
     schemaLocation="http://www.w3.org/2001/xml.xsd"/>

    <xs:complexType name="listType">
     <xs:sequence>
      <xs:element name="display-name" type="display-nameType" 
minOccurs="0"/>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
       <xs:choice>
        <xs:element name="list">
         <xs:complexType>
          <xs:complexContent>
           <xs:extension base="listType"/>
          </xs:complexContent>
         </xs:complexType>
        </xs:element>
        <xs:element name="external" type="externalType"/>
        <xs:element name="entry" type="entryType"/>
        <xs:element name="entry-ref" type="entry-refType"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0"
                maxOccurs="unbounded"/>
       </xs:choice>
      </xs:sequence>
     </xs:sequence>
     <xs:attribute name="name" type="xs:string" use="optional"/>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="entryType">
     <xs:sequence>
      <xs:element name="display-name" minOccurs="0">
       <xs:complexType>
        <xs:simpleContent>
         <xs:extension base="display-nameType"/>
        </xs:simpleContent>
       </xs:complexType>
      </xs:element>
      <xs:any namespace="##other" processContents="lax" minOccurs="0"
       maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="uri" type="xs:anyURI" use="required"/>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="entry-refType">
     <xs:sequence>
      <xs:element name="display-name" type="display-nameType" 
minOccurs="0"/>
      <xs:any namespace="##other"processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="ref" type="xs:anyURI" use="required"/>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>

    <xs:complexType name="externalType">
     <xs:sequence>
      <xs:element name="display-name" type="display-nameType" 
minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="anchor" type="xs:anyURI"/>
     <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>

    <xs:element name="resource-lists">
     <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
       <xs:element name="list" type="listType"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>

    <xs:complexType name="display-nameType">
     <xs:simpleContent>
      <xs:extension base="xs:string">
       <xs:attribute ref="xml:lang"/>
      </xs:extension>
     </xs:simpleContent>
    </xs:complexType>
</xs:schema>

Then the services schema should import the list schema. However, I'd 
much prefer that the services and list schema would share the same 
targetNamespace (include reference then to services). 

These kind of bugs easily occur as this favorite tool does not (or want 
to) check UPA violations (at least versions that I am aware of). That 
was one reason for setting up the on-line tool 
<http://validate.openlaboratory.net/> which is based on Xerces which 
supports UPA checking.

br,
Jari

_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sip@ietf.org for new developments of core SIP