+++ /dev/null
-module string-types {
- yang-version 1;
- namespace "urn:ietf:params:xml:ns:yang:test:string:types";
- prefix "str-tp";
-
- typedef DisplayString {
- type string {
- length "0..255";
- pattern "((\p{IsBasicLatin}{0,255}))";
- }
- }
-
- typedef PhysAddress {
- type string {
- pattern "((([0-9A-Fa-f]{2}){1}):)";
- }
- }
-
- typedef MacAddress {
- type string {
- length "6";
- pattern "((([0-9A-Fa-f]{2}){1}):)";
- }
- }
-
- typedef DateAndTime {
- type string {
- length "8|11";
- pattern "((0|[1-9](([0-9]){0,4}))-(0|[1-9](([0-9]){0,2}))-(0|[1-9](([0-9]){0,2})),(0|[1-9](([0-9]){0,2})):(0|[1-9](([0-9]){0,2})):(0|[1-9](([0-9]){0,2})).(0|[1-9](([0-9]){0,2})),((\p{IsBasicLatin}{1})(0|[1-9](([0-9]){0,2})):(0|[1-9](([0-9]){0,2})))?)";
- }
- }
-
- typedef Arrows {
- type string {
- length "10";
- pattern "((\p{IsArrows}{5,255}))";
- }
- }
-
- typedef Thai {
- type string {
- length "10";
- pattern "((\p{IsThai}{8,255}))";
- }
- }
-
- typedef BraillePatterns {
- type string {
- length "10";
- pattern "((\p{IsBraillePatterns}{4,255}))";
- }
- }
-
- typedef MathematicalOperators {
- type string {
- length "10";
- pattern "((\p{IsMathematicalOperators}{4,255}))";
- }
- }
-
- container test {
- description "Tests various combinations of regex expressions found in snmp yang models,
- which are causing problems because of isBasicLatin expression.
-
- According to https://unicode.org/charts/PDF/U0000.pdf basic latin characters are in range
- 0x00-0x7F ([\x00-\xFF] or [\u0000-\u00FF]). This means it should be safe to replace isBasicLatin
- in regex expressions for characters in this range.";
-
- leaf display-string {
- type DisplayString;
- }
- leaf phys-address {
- type PhysAddress;
- }
- leaf mac-address {
- type MacAddress;
- }
- leaf date-and-time {
- type DateAndTime;
- }
- leaf arrows {
- type Arrows;
- }
- leaf thai {
- type Thai;
- }
- leaf braille-patterns {
- type BraillePatterns;
- }
- leaf mathematical-operators {
- type MathematicalOperators;
- }
- }
-}
\ No newline at end of file