4 "patternProperties validates properties matching a regex",
7 "f.*o": {"type": "integer"}
12 "description": "a single valid match is valid",
17 "description": "multiple valid matches is valid",
18 "data": {"foo": 1, "foooooo" : 2},
22 "description": "a single invalid match is invalid",
23 "data": {"foo": "bar", "fooooo": 2},
27 "description": "a single invalid match is invalid",
28 "data": {"fooooo": 2, "foo": "bar"},
32 "description": "multiple invalid matches is invalid",
33 "data": {"foo": "bar", "foooooo" : "baz"},
37 "description": "ignores non-objects",
44 "description": "multiple simultaneous patternProperties are validated",
46 "patternProperties": {
47 "a*": {"type": "integer"},
48 "aaa*": {"maximum": 20}
53 "description": "a single valid match is valid",
58 "description": "a simultaneous match is valid",
63 "description": "multiple matches is valid",
64 "data": {"a": 21, "aaaa": 18},
68 "description": "an invalid due to one is invalid",
73 "description": "an invalid due to the other is invalid",
78 "description": "an invalid due to both is invalid",
79 "data": {"aaa": "foo", "aaaa": 31},
85 "description": "regexes are not anchored by default and are case sensitive",
87 "patternProperties": {
88 "[0-9]{2,}": { "type": "boolean" },
89 "X_": { "type": "string" }
94 "description": "non recognized members are ignored",
95 "data": { "answer 1": "42" },
99 "description": "recognized members are accounted for",
100 "data": { "a31b": null },
104 "description": "regexes are case sensitive",
105 "data": { "a_x_3": 3 },
109 "description": "regexes are case sensitive, 2",
110 "data": { "a_X_3": 3 },