On Mon, Apr 22, 2019 at 1:21 PM Kent Watsen <[email protected]> wrote:

> Hi Juergen,
>
>
> can you provide examples where this particular type is useful?
>
>
> Useful in many contexts.  For instance:
>
>     list user {
>       key name;
>       leaf name {
>         type string;
>       }
>       leaf password {
>         type string;
>       }
>
>

Why would type string be used?

    list user {
      key name;
      leaf name {
        type yang:yang-identifier;
      }
      leaf password {
        type iana:crypt-hash;
      }
  }

Still not clear on the use-cases for a token data type.


Andy


> The following instance document is valid:
>
>   <user>
>     <name/>
>     <password/>
>   </user>
>
> Adding pattern statements works, but gets old after awhile.  A built-in
> type would be helpful.
>
>
> Or were
> you generally looking for a type to name things and the XSD token type
> was the first one that came your mind?
>
>
> Yes, from past-life experience with XSD, I found "token" and
> "normalizedString" useful (
> https://www.w3schools.com/XML/schema_dtypes_string.asp).   However, those
> types
> do not fully express what I really want (including, e.g., non-empty),
> which is:
>
> a) a type for a non-empty, stripped, printable string that MAY contain
> internal 'space' characters.
>
> b) a type for a non-empty, stripped, printable string that MAY NOT contain
> internal 'space' characters.
>
> /kw
>
>
> If the goal is to define a type for identifiers, then we likely should
> follow the Unicode standard annex UAX-31 and make use of <XID_Start>
> <XID_Continue>, which is what I think Python3 and Rust are using as
> the basis for their notion of language identifiers (but then the
> Unicode definitions are also criticized as buggy). A challenge is that
> the definition of <XID_Start> and <XID_Continue> seems to evolve with
> the unicode version. And once you start digging into the various
> attempts of modern programming languages to support internationalized
> identifiers, you discover that this is far from trivial to get right.
>
> /js
>
> On Thu, Apr 18, 2019 at 04:51:21AM +0000, Kent Watsen wrote:
>
>
> Many times in models I want a non-empty version of what XSD calls a
> "token":
>
>    token    A string that does not contain line feeds,
>             carriage returns, tabs, leading or trailing
>             spaces, or multiple spaces.
>
> So how about the following?
>
>  typedef token {
>      type string;
>      length "1.max";         // non-empty (some expr do this already)
>      pattern "[^\n\r\t"]+"   // no LFs, CRs, or Tabs
>      pattern "[^ ].*";       // no leading space     (min-length 1?)
>      pattern ".*[^ ]";       // no trailing space    (min-length 1?)
>      pattern ".*[^ ][^ ].*"  // no multiple spaces   (min-length 2?)
>  }
>
> Kent // contributor
>
>
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod
>
>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>
>
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod
>
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to