We are thinking along very similar lines. Yes, I think what we want to do is have the definition of MVALID as those characters that are subject to IDNA2003-style mapping. I think it is best to call it a slightly different name, since it is those characters subject to mapping, and we don&#39;t want people to think it is all those characters valid in an M-Label. I&#39;ll use the working name MSUBJECT.<div>
<br></div><div>The process in Protocol would be along the following lines.</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">1. For any substring of the input whose characters are all in MSUBJECT, convert that substring via the following mapping, and replace in the source.<br>
<br>substring = toNFKC(removeDI(toCaseFold(toNFKC(substring))))<br><br>// the &quot;removeDI step would be dropped if we decide not to remove them<br><br>2. Transform the entire string via NFC.<br><br>// we need to do this to make sure the result is NFC, because of possible interactions between characters that are inside and outside MSUBJECT.<br>
<br>3. Proceed with the rest of Protocol<br></blockquote><div><br></div><div>We would then define MSUBJECT in Tables using much the same process as you have for PVALID, via combinations of properties and exceptions.</div>
<div><br></div><div>So, for example, if we have uppercase O-umlaut in MSUBJECT, it will be converted to lowercase, if we don&#39;t, then it wouldn&#39;t.</div><div><br></div><div><div><br clear="all">Mark<br>
<br><br><div class="gmail_quote">2009/4/10 Patrik Fältström <span dir="ltr">&lt;<a href="mailto:patrik@frobbit.se">patrik@frobbit.se</a>&gt;</span></div><div class="gmail_quote">...<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2. M-Label<br>
<br>
I have seen the discussions regarding M-Label, and my say that as an editor of the tables document, I think it might be &quot;more interesting&quot; to define MVALID as a property that is calculated in the tables document.<br>

<br>
Suggestion:<br>
<br>
MVALID would be a codepoint that is mapped, according to the standardized mapping function, to something that is not DISALLOWED.<br>
<br>
Next question would then be, what does the mapping function look like?<br>
<br>
I have seen sort of the following suggestions, but I might have misunderstood this, so please help/my excuses for missing something:<br>
<br>
1. Casefold (C+F)<br>
2. Lowercase (C+S)<br>
3. &quot;IDNA2003 valid _input_ codepoints that are not mapped to DISALLOWED and themselves DISALLOWED&quot;<br>
<br>
Questions:<br>
<br>
A. Should we defined MVALID?<br>
B. What should the general rule be that define it (we can have codepoints in Exceptions as before)?<br><font color="#888888">
<br>
   Patrik<br>
<br>
</font><br>_______________________________________________<br>
Idna-update mailing list<br>
<a href="mailto:Idna-update@alvestrand.no">Idna-update@alvestrand.no</a><br>
<a href="http://www.alvestrand.no/mailman/listinfo/idna-update" target="_blank">http://www.alvestrand.no/mailman/listinfo/idna-update</a><br>
<br></blockquote></div><br></div></div>