<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:55:07 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>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGTOOLS-1077] Validate YANG strings for forbidden characters</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1077</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;According to RFC7950, YANG strings can&apos;t store forbidden characters defined in Section 14, &lt;a href=&quot;https://tools.ietf.org/html/rfc7950#section-14,&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc7950#section-14&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is the particular section of the rule:&lt;/p&gt;

&lt;p&gt;yang-string = *yang-char&lt;br/&gt;
 ;; any Unicode or ISO/IEC 10646 character, including tab, carriage&lt;br/&gt;
 ;; return, and line feed but excluding the other C0 control&lt;br/&gt;
 ;; characters, the surrogate blocks, and the noncharacters&lt;br/&gt;
 yang-char = %x09 / %x0A / %x0D / %x20-D7FF /&lt;br/&gt;
 ; exclude surrogate blocks %xD800-DFFF&lt;br/&gt;
 %xE000-FDCF / ; exclude noncharacters %xFDD0-FDEF&lt;br/&gt;
 %xFDF0-FFFD / ; exclude noncharacters %xFFFE-FFFF&lt;br/&gt;
 %x10000-1FFFD / ; exclude noncharacters %x1FFFE-1FFFF&lt;br/&gt;
 %x20000-2FFFD / ; exclude noncharacters %x2FFFE-2FFFF&lt;br/&gt;
 %x30000-3FFFD / ; exclude noncharacters %x3FFFE-3FFFF&lt;br/&gt;
 %x40000-4FFFD / ; exclude noncharacters %x4FFFE-4FFFF&lt;br/&gt;
 %x50000-5FFFD / ; exclude noncharacters %x5FFFE-5FFFF&lt;br/&gt;
 %x60000-6FFFD / ; exclude noncharacters %x6FFFE-6FFFF&lt;br/&gt;
 %x70000-7FFFD / ; exclude noncharacters %x7FFFE-7FFFF&lt;br/&gt;
 %x80000-8FFFD / ; exclude noncharacters %x8FFFE-8FFFF&lt;br/&gt;
 %x90000-9FFFD / ; exclude noncharacters %x9FFFE-9FFFF&lt;br/&gt;
 %xA0000-AFFFD / ; exclude noncharacters %xAFFFE-AFFFF&lt;br/&gt;
 %xB0000-BFFFD / ; exclude noncharacters %xBFFFE-BFFFF&lt;br/&gt;
 %xC0000-CFFFD / ; exclude noncharacters %xCFFFE-CFFFF&lt;br/&gt;
 %xD0000-DFFFD / ; exclude noncharacters %xDFFFE-DFFFF&lt;br/&gt;
 %xE0000-EFFFD / ; exclude noncharacters %xEFFFE-EFFFF&lt;br/&gt;
 %xF0000-FFFFD / ; exclude noncharacters %xFFFFE-FFFFF&lt;br/&gt;
 %x100000-10FFFD ; exclude noncharacters %x10FFFE-10FFFF&lt;/p&gt;

&lt;p&gt;&#160;&lt;br/&gt;
Yangtools now does not provide any validation of this form, so it could create some issues, although accepting invalid strings might be good for interoperability, but emitting invalid strings (and exposing them to mdsal plugins) is both RFC-incompliant and bad for interoperability.&lt;/p&gt;

&lt;p&gt;UPDATE: &quot;yang strings&quot; means not only string literals written in the .yang files themselves, but also all data of the builtin type string &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; (and presumably any derived type).&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://tools.ietf.org/html/rfc7950#section-9.4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://tools.ietf.org/html/rfc7950#section-9.4&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="32400">YANGTOOLS-1077</key>
            <summary>Validate YANG strings for forbidden characters</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10001">Won&apos;t Do</resolution>
                                        <assignee username="martinbugan">Martin Bug&#225;&#328;</assignee>
                                    <reporter username="martinbugan">Martin Bug&#225;&#328;</reporter>
                        <labels>
                    </labels>
                <created>Fri, 31 Jan 2020 14:03:40 +0000</created>
                <updated>Wed, 12 Feb 2020 13:06:24 +0000</updated>
                            <resolved>Wed, 12 Feb 2020 13:06:24 +0000</resolved>
                                                                    <component>codecs</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="67806" author="vrpolak" created="Mon, 3 Feb 2020 13:10:36 +0000"  >&lt;p&gt;I am not sure what will be the proper place to add the validation, but just before here &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; looks reasonable.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://github.com/opendaylight/yangtools/blob/v4.0.6/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java#L52&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opendaylight/yangtools/blob/v4.0.6/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/StringStringCodec.java#L52&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="67840" author="rovarga" created="Wed, 12 Feb 2020 13:06:24 +0000"  >&lt;p&gt;After thinking about this quite a bit, I do not believe it is feasible to implement this. The reason for that boils down to the fact we would have to either encapsulate String objects to express they have been validated or validate them at each surface where plain Java meets YANG-modeled world. That is just not feasible.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03qzb:</customfieldvalue>

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