<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:53:33 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-261] $set issue with dots</title>
                <link>https://jira.mongodb.org/browse/SERVER-261</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;test in jstests/set1.js&lt;/p&gt;</description>
                <environment></environment>
        <key id="10489">SERVER-261</key>
            <summary>$set issue with dots</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="eliot">Eliot Horowitz</assignee>
                                    <reporter username="eliot">Eliot Horowitz</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Aug 2009 00:17:49 +0000</created>
                <updated>Tue, 12 Jul 2016 00:27:21 +0000</updated>
                            <resolved>Sat, 16 Jan 2010 11:16:58 +0000</resolved>
                                                    <fixVersion>1.3.1</fixVersion>
                                    <component>Write Ops</component>
                                        <votes>1</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="11808" author="auto" created="Sat, 16 Jan 2010 11:17:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Eliot Horowitz&apos;, &apos;email&apos;: &apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: check for bad $set where set to an object with a . &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-261&quot; title=&quot;$set issue with dots&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-261&quot;&gt;&lt;del&gt;SERVER-261&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/53b5dae92e8c045f6aa94add14dc0564ee9ee6e9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/53b5dae92e8c045f6aa94add14dc0564ee9ee6e9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="11789" author="auto" created="Thu, 14 Jan 2010 23:57:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Eliot Horowitz&apos;, &apos;email&apos;: &apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: cleaning test for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-261&quot; title=&quot;$set issue with dots&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-261&quot;&gt;&lt;del&gt;SERVER-261&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/2ca97f66235cdd348bc470c449c1468e61c56b86&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/2ca97f66235cdd348bc470c449c1468e61c56b86&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="11315" author="eliot" created="Wed, 9 Dec 2009 17:26:06 +0000"  >&lt;p&gt;makingn a lot of changes to this code - so dont think that makes too much sense to do right now&lt;/p&gt;</comment>
                            <comment id="11314" author="aaron" created="Wed, 9 Dec 2009 17:15:01 +0000"  >&lt;p&gt;I&apos;m going to work on adding dot checking when objcheck is enabled.&lt;/p&gt;</comment>
                            <comment id="10703" author="aaron" created="Thu, 10 Sep 2009 21:55:43 +0000"  >&lt;p&gt;Just to clarify: I&apos;m deferring to others on the question of validation w/o --objcheck, but I&apos;m happy to do the implementation myself.&lt;/p&gt;</comment>
                            <comment id="10695" author="aaron" created="Thu, 10 Sep 2009 12:45:15 +0000"  >&lt;p&gt;Let&apos;s see what Dwight thinks...&lt;/p&gt;</comment>
                            <comment id="10669" author="eliot" created="Wed, 9 Sep 2009 21:19:52 +0000"  >
&lt;p&gt;yeah - though i still wonder if we should check this case:&lt;br/&gt;
t.update( &lt;/p&gt;
{ _id : 1 }
&lt;p&gt;, { $set : { a : &lt;/p&gt;
{ &apos;b.c&apos; : &apos;data&apos;}
&lt;p&gt; }});&lt;br/&gt;
even with objcheck off b/c it might be a common mistake.&lt;/p&gt;

&lt;p&gt;i&apos;ll look into it.&lt;/p&gt;</comment>
                            <comment id="10668" author="aaron" created="Wed, 9 Sep 2009 21:13:16 +0000"  >&lt;p&gt;That&apos;s already implemented, so maybe --objcheck validation is all that remains for this bug?&lt;/p&gt;</comment>
                            <comment id="10667" author="eliot" created="Wed, 9 Sep 2009 21:02:34 +0000"  >&lt;p&gt;ugh, yeah, your&apos;e right&lt;/p&gt;

&lt;p&gt;so....&lt;br/&gt;
t.update( {_id:1}, {$set:{&apos;a.dot&apos;:&apos;data&apos;}} );&lt;br/&gt;
   start {}  end : { a : &lt;/p&gt;
{ dot : &quot;data&quot; }
&lt;p&gt; }&lt;br/&gt;
   start { a : &lt;/p&gt;
{ b : 1 }
&lt;p&gt; } end : { a : &lt;/p&gt;
{ b : 1 , dot : &quot;data&quot; }
&lt;p&gt; } &lt;/p&gt;

&lt;p&gt;t.update( {_id:1}, {$set:{a:&lt;/p&gt;
{dot:&apos;data&apos;}
&lt;p&gt;}} ); &lt;br/&gt;
   start {}  end : { a : &lt;/p&gt;
{ dot : &quot;data&quot; }
&lt;p&gt; }&lt;br/&gt;
   start { a : &lt;/p&gt;
{ b : 1 }
&lt;p&gt; } end : { a : &lt;/p&gt;
{ dot : &quot;data&quot; }
&lt;p&gt; }&lt;/p&gt;</comment>
                            <comment id="10666" author="aaron" created="Wed, 9 Sep 2009 20:56:39 +0000"  >&lt;p&gt;Ok, so is the suggestion that we should not allow $set to be used to explicitly set a field to an object value?  For example, would the following be prohibited?&lt;/p&gt;

&lt;p&gt;t.update( {_id:1}, {$set:{a:&lt;/p&gt;
{dot:&apos;data&apos;,bot:&apos;beta&apos;}
&lt;p&gt;}} ); &lt;br/&gt;
t.update( {_id:1}, {$set:{a:{}}} ); &lt;/p&gt;

&lt;p&gt;Requiring the client to do &lt;br/&gt;
t.update( {_id:1}, {$set:{&apos;a.dot&apos;:&apos;data&apos;,&apos;a.bot&apos;:&apos;beta&apos;}} ); &lt;br/&gt;
to get the desired behavior my first case above seems like a cumbersome interface, and generating an object from the &apos;a.dot&apos;, &apos;a.bot&apos;, etc representation wastes cpu.&lt;/p&gt;</comment>
                            <comment id="10659" author="eliot" created="Tue, 8 Sep 2009 21:49:40 +0000"  >
&lt;p&gt;set1.js is invalid now - and my above example was sloppy&lt;/p&gt;

&lt;p&gt;but actually, i think we really need to do is make:&lt;br/&gt;
t.update( {_id:1}, {$set:{a:&lt;/p&gt;
{dot:&apos;data&apos;}
&lt;p&gt;}} ); &lt;br/&gt;
illegal b/c its confusing&lt;/p&gt;

&lt;p&gt;you should have to do:&lt;br/&gt;
t.update( {_id:1}, {$set:{&apos;a.dot&apos;:&apos;data&apos;}} ); &lt;/p&gt;
</comment>
                            <comment id="10658" author="aaron" created="Tue, 8 Sep 2009 20:44:35 +0000"  >&lt;p&gt;Looking at the set1.js test, it seems that the desired output is actually:&lt;/p&gt;

&lt;p&gt;{_id:1,emb:{a:&lt;/p&gt;
{dot:&apos;data&apos;}
&lt;p&gt;}}&lt;/p&gt;

&lt;p&gt;I argue that if you want the update to produce this your command should be&lt;br/&gt;
t.update( {_id:1}, {$set:{&apos;emb.a&apos;:&lt;/p&gt;
{dot:&apos;data&apos;}
&lt;p&gt;}} ); or t.update( {_id:1}, {$set:{&apos;emb.a.dot&apos;:&apos;data&apos;}} );&lt;/p&gt;

&lt;p&gt;and not&lt;/p&gt;

&lt;p&gt;t.update( {_id:1}, {$set:{emb:&lt;/p&gt;
{&apos;a.dot&apos;:&apos;data&apos;}
&lt;p&gt;}} ), which would be invalid under --objcheck.&lt;/p&gt;</comment>
                            <comment id="10657" author="aaron" created="Tue, 8 Sep 2009 20:34:51 +0000"  >&lt;p&gt;Ok, I don&apos;t really understand what &apos;emb&apos; is supposed to be in your examples.  Running your first example I get the following:&lt;/p&gt;

&lt;p&gt;t.update( {_id:1}, {$set:{emb:&lt;/p&gt;
{&apos;a.dot&apos;:&apos;data&apos;}
&lt;p&gt;}} );&lt;br/&gt;
&amp;gt; t.findOne();&lt;br/&gt;
{&quot;_id&quot; : 1 , &quot;emb&quot; : {&quot;a.dot&quot; : &quot;data&quot;}}&lt;/p&gt;

&lt;p&gt;which is bad and I think should be validated with objcheck only.&lt;/p&gt;

&lt;p&gt;You can get the behavior intended with either of the following:&lt;br/&gt;
t.update( {_id:1}, {$set:{&apos;a.dot&apos;:&apos;data&apos;}} );&lt;br/&gt;
t.update( {_id:1}, {$set:{a:&lt;/p&gt;
{dot:&apos;data&apos;}
&lt;p&gt;}} );&lt;/p&gt;

&lt;p&gt;I don&apos;t understand why the &apos;emb&apos; is placed in your examples or how come it is supposed to be absent from the desired output.&lt;/p&gt;</comment>
                            <comment id="10652" author="eliot" created="Mon, 7 Sep 2009 20:09:48 +0000"  >&lt;p&gt;no - that&apos;s not quite right&lt;/p&gt;

&lt;p&gt;if you start with &lt;/p&gt;
{ _id : 1 }
&lt;p&gt;after: update( &lt;/p&gt;
{ _id : 1 }
&lt;p&gt;, { $set : { emb : &lt;/p&gt;
{ &apos;a.dot&apos; : &apos;data&apos;}
&lt;p&gt; }}); &lt;br/&gt;
you should have&lt;br/&gt;
{ _id : 1 , a : &lt;/p&gt;
{ dot : &quot;data&quot; }
&lt;p&gt; }&lt;br/&gt;
after: update( &lt;/p&gt;
{ _id : 1 }
&lt;p&gt;, { $set : { emb : &lt;/p&gt;
{ &apos;a.dot2&apos; : &apos;data&apos;}
&lt;p&gt; }}); &lt;br/&gt;
you should have &lt;br/&gt;
{ _id : 1 , a : &lt;/p&gt;
{ dot : &quot;data&quot; , dot2 : &apos;data&apos; }
&lt;p&gt; }&lt;/p&gt;

&lt;p&gt;this: t.update( {}, {$set:{&apos;b.c&apos;:&lt;/p&gt;
{&apos;e.f&apos;:1}
&lt;p&gt;}} )&lt;br/&gt;
should generate:&lt;br/&gt;
{ b : { c : &lt;/p&gt;
{ &quot;e.f&quot; : 1 }
&lt;p&gt; } }&lt;br/&gt;
which is an illegal value, but the db should not check for that unless --objcheck is on&lt;/p&gt;</comment>
                            <comment id="10650" author="aaron" created="Mon, 7 Sep 2009 17:33:37 +0000"  >&lt;p&gt;Are you trying to suggest that the syntax t.update( {}, {$set:{&apos;b.c&apos;:&lt;/p&gt;
{&apos;e.f&apos;:1}
&lt;p&gt;}} ) should be allowed, and that the implementation would add the subobject {b:{c:{e:{f:1}}}} ?  That seems to me like really unintuitive syntax, and implementing it certainly wouldn&apos;t be a performance improvement over just auditing the &apos;e.f&apos;, unless you&apos;re trying to avoid driver level auditing of modifiers for some reason while keeping it for other updates and inserts.  Also, why would we support this syntax for a modifier update but not on an insert?&lt;/p&gt;

&lt;p&gt;If this is not what you&apos;re suggesting, I&apos;m sorry but you&apos;re going to have to be more precise about what you want.&lt;/p&gt;</comment>
                            <comment id="10630" author="eliot" created="Thu, 3 Sep 2009 22:10:04 +0000"  >&lt;p&gt;right - so we just need to handle the creation of sub-object cast&lt;/p&gt;</comment>
                            <comment id="10629" author="aaron" created="Thu, 3 Sep 2009 21:30:02 +0000"  >&lt;p&gt;I think what was meant in the previous comment is that without &quot;a.&quot; the $set works correctly, with &quot;a.&quot; an illegal value is inserted.  This is what I observe empirically.&lt;/p&gt;

&lt;p&gt;All that&apos;s happening here is that the element named &quot;emb&quot; is inserted into the matching object.  If that element is to be a subobject, there is no validation performed on the provided subobject.  The same is true if we attempt to $push an object.&lt;/p&gt;

&lt;p&gt;Since the value of the inserted element is to become part of a mongo document, it must obey the mongo document syntax.  Clearly the element value &lt;/p&gt;
{&apos;a.dot&apos;:&apos;data&apos;}
&lt;p&gt; does not obey the mongo document syntax.  To me it seems inconsistent to always validate document syntax when modifiers are employed but not when an object is inserted.  Why not conditionally validate modifier elements at the driver level and / or with --objcheck instead?&lt;/p&gt;

&lt;p&gt;This would require special casing modifiers in the driver level syntax check, but I believe that is already necessary.  If you issue update t.update( {}, {a:{&apos;b.c&apos;:1}} ) the syntax is invalid, but if you issue update t.update( {}, {$set:{&apos;b.c&apos;:1}} )  the update is valid.  However, as I&apos;ve mentioned, t.update( {}, {$set:{&apos;b.c&apos;:&lt;/p&gt;
{&apos;e.f&apos;:1}
&lt;p&gt;}} ) should not be valid.&lt;/p&gt;</comment>
                            <comment id="10625" author="eliot" created="Thu, 3 Sep 2009 12:00:06 +0000"  >&lt;p&gt;the problem is that:&lt;br/&gt;
t.update( &lt;/p&gt;
{ _id : 1 }
&lt;p&gt;, { $set : { emb : &lt;/p&gt;
{ &apos;a.dot&apos; : &apos;data&apos;}
&lt;p&gt; }});&lt;br/&gt;
does something very different if a is there or not.&lt;br/&gt;
if its there, it works correctly&lt;br/&gt;
it its not - it does something that creates an illegal value&lt;br/&gt;
so the sytnax is correct, so can&apos;t be blocked at the driver level&lt;/p&gt;

&lt;p&gt;this is just a special case of $set that should be smarter &lt;/p&gt;</comment>
                            <comment id="10624" author="dwight_10gen" created="Thu, 3 Sep 2009 11:43:16 +0000"  >&lt;p&gt;we should check for dots when --objcheck is enabled.  i think then this can be closed.  drivers checking is a good idea.&lt;/p&gt;</comment>
                            <comment id="10611" author="wouter" created="Tue, 1 Sep 2009 15:29:48 +0000"  >&lt;p&gt;Maybe the driver should validate field names?!&lt;/p&gt;</comment>
                            <comment id="10593" author="aaron" created="Mon, 31 Aug 2009 00:34:04 +0000"  >&lt;p&gt;Our BSON &quot;spec&quot; (wiki page) states that dots aren&apos;t allowed in document field names, since we don&apos;t validate BSON in general not sure if we want to validate this case specifically.&lt;/p&gt;</comment>
                            <comment id="10592" author="aaron" created="Mon, 31 Aug 2009 00:29:30 +0000"  >&lt;p&gt;mongod itself doesn&apos;t check inserted objects for dots, but the js shell does in DBCollection.prototype._validateForStorage&lt;/p&gt;

&lt;p&gt;            client().insert( ns(), BSON( &quot;a.b&quot; &amp;lt;&amp;lt; 5 ) );&lt;br/&gt;
            log() &amp;lt;&amp;lt; client().findOne( ns(), BSONObj() ) &amp;lt;&amp;lt; endl;&lt;/p&gt;

&lt;p&gt;&amp;gt; Sun Aug 30 21:21:43 &lt;/p&gt;
{ _id: ObjId(4a9b4fd73d3ab47648ddb918), a.b: 5 }

&lt;p&gt;Do we want validation for this $set case there as well?&lt;/p&gt;</comment>
                            <comment id="10555" author="eliot" created="Wed, 26 Aug 2009 09:48:58 +0000"  >&lt;p&gt;Yeah - it definitely shouldn&apos;t allow a field with a dot in the name.&lt;/p&gt;

&lt;p&gt;I think failing is probably the right thing...&lt;/p&gt;</comment>
                            <comment id="10552" author="mike" created="Wed, 26 Aug 2009 00:52:44 +0000"  >&lt;p&gt;The current behavior shown in set1.js should be illegal - there should never be a way to get a document into the database that has &apos;.&apos; in a key name - leads to issues with queries.&lt;/p&gt;

&lt;p&gt;My thought is that the update should fail in the first case? If not it shouldn&apos;t update the document the way it is now.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>24.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 26 Aug 2009 00:52:44 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        14 years, 5 weeks, 4 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            14 years, 5 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>aaron</customfieldvalue>
            <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>dwight@mongodb.com</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>mike</customfieldvalue>
            <customfieldvalue>wouter</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpwbj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrivbr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>23728</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hszyvb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>