namespaces in subtree filtering

Martin Bjorklund <mbj@tail-f.com> Wed, 21 March 2007 10:03 UTC

Return-path: <owner-netconf@ops.ietf.org>
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HTxfF-0000Uv-0a for netconf-archive@lists.ietf.org; Wed, 21 Mar 2007 06:03:29 -0400
Received: from psg.com ([147.28.0.62]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HTxeX-0005VO-S4 for netconf-archive@lists.ietf.org; Wed, 21 Mar 2007 06:03:28 -0400
Received: from majordom by psg.com with local (Exim 4.63 (FreeBSD)) (envelope-from <owner-netconf@ops.ietf.org>) id 1HTxWM-000G4y-9V for netconf-data@psg.com; Wed, 21 Mar 2007 09:54:18 +0000
X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on psg.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.1.7
Received: from [213.180.94.158] (helo=mail.tail-f.com) by psg.com with esmtp (Exim 4.63 (FreeBSD)) (envelope-from <mbj@tail-f.com>) id 1HTxWJ-000G1g-7M for netconf@ops.ietf.org; Wed, 21 Mar 2007 09:54:16 +0000
Received: from localhost (unknown [81.19.44.195]) by mail.tail-f.com (Postfix) with ESMTP id 3AEC51B80C3 for <netconf@ops.ietf.org>; Wed, 21 Mar 2007 10:54:07 +0100 (CET)
Date: Wed, 21 Mar 2007 10:54:01 +0100
Message-Id: <20070321.105401.115867736.mbj@tail-f.com>
To: netconf@ops.ietf.org
Subject: namespaces in subtree filtering
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 5.1.51 on Emacs 21.4 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: owner-netconf@ops.ietf.org
Precedence: bulk
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 6cca30437e2d04f45110f2ff8dc1b1d5

Andy noted at the meeting that subtree filtering can't be used to
retreive elements from mulitple namespaces.

The text from rfc4741, section 6.2.1 says:

   If namespaces are used, then the filter output will only include
   elements from the specified namespace.  A namespace is considered to
   match (for filter purposes) if the content of the 'xmlns' attributes
   are the same in the filter and the underlying data model.

This is somewhat difficult to interpret.  What exactly does "the
'xmlns' attributes" mean?  Note the plural.

Suppose we have this in the database:

   <if:interfaces xmlns:if="http://example.com/interface">
     <if:interface>
       <if:ifIndex>1</if:ifIndex>
       <if:ifType>ds0</if:ifType>
       <ds0:circuitIdentifier xmlns:ds0="http://example.com/ds0">foo</ds0:circuitIdentifier>
     </if:interface>
   </if:interfaces>
 
Accordning to the example in 6.2.1, the following filter:

   <get>
     <filter>
       <if:interfaces xmlns:if="http://example.com/interface"/>
     </filter>
   </get>

would return

   <if:interfaces xmlns:if="http://example.com/interface">
     <if:interface>
       <if:ifIndex>1</if:ifIndex>
       <if:ifType>ds0</if:ifType>
     </if:interface>
   </if:interfaces>

Suppose instead the filter is

   <get xmlns:if="http://example.com/interface">
     <filter>
       <if:interfaces/>
     </filter>
   </get>

Note that no xmlns attributes are present in the filter itself.

Would we get the ds0 elements as well?

What about this filter:

   <get>
     <filter>
       <if:interfaces xmlns:if="http://example.com/interface"
                      xmlns:ds0="http://example.com/ds0"/>
     </filter>
   </get>

Here we have two xmlns attributes.  Would we get the ds0 elements in
this case?


IMO, it's unfortunate that the xmlns attribute is overloaded with this
filter semantics.  I don't really see the value in this namespace
selection mechanism at all.  Are there any use cases where it makes
sense?


/martin


--
to unsubscribe send a message to netconf-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/netconf/>