aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-03-11 13:40:30 -0500
committerDavid Robillard <d@drobilla.net>2021-03-11 13:40:30 -0500
commit7485bde78f3422e4f9415ff452fcd858ee544cd0 (patch)
tree043d2d4f5785d0d4933fe449785cde262b6cecc7
parent89321be2808471f99437e1effef0c83be4688b57 (diff)
downloadlv2-7485bde78f3422e4f9415ff452fcd858ee544cd0.tar.xz
Fix pattern restrictions in xsd.ttl
This fixes the patterns to properly match the spec (several were too strict or otherwise impresive), and also reduces the regex syntax used to a basic and nearly universal subset (without the use of counted replication) that should be supported and handled consistently by even a very basic implementation.
-rw-r--r--schemas.lv2/xsd.ttl26
1 files changed, 14 insertions, 12 deletions
diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl
index d22687b..01be2e4 100644
--- a/schemas.lv2/xsd.ttl
+++ b/schemas.lv2/xsd.ttl
@@ -61,7 +61,7 @@ xsd:base64Binary
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"
+ xsd:pattern "(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *)*(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/])|([A-Za-z0-9+/] *[A-Za-z0-9+/] *[AEIMQUYcgkosw048] *=)|([A-Za-z0-9+/] *[AQgw] *= *=)))?"
] [
xsd:whiteSpace "collapse"
]
@@ -73,7 +73,7 @@ xsd:boolean
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "(true|false)"
+ xsd:pattern "(true|false|0|1)"
] [
xsd:whiteSpace "collapse"
]
@@ -97,7 +97,7 @@ xsd:date
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"
+ xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|[-+][0-2][0-9]:[0-5][0-9])?"
] [
xsd:whiteSpace "collapse"
]
@@ -109,7 +109,7 @@ xsd:dateTime
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"
+ xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?"
] [
xsd:whiteSpace "collapse"
]
@@ -122,7 +122,7 @@ xsd:decimal
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
] [
xsd:whiteSpace "collapse"
]
@@ -135,7 +135,7 @@ xsd:double
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
] [
xsd:whiteSpace "collapse"
]
@@ -147,6 +147,8 @@ xsd:duration
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
+ xsd:pattern "-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?"
+ ] [
xsd:whiteSpace "collapse"
]
) .
@@ -158,7 +160,7 @@ xsd:float
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
] [
xsd:whiteSpace "collapse"
]
@@ -223,7 +225,7 @@ xsd:hexBinary
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[0-9A-F]*"
+ xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*"
] [
xsd:whiteSpace "collapse"
]
@@ -259,7 +261,7 @@ xsd:language
owl:onDatatype xsd:token ;
owl:withRestrictions (
[
- xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
+ xsd:pattern "[a-zA-Z][a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?(-[a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?)*"
]
) .
@@ -315,7 +317,7 @@ xsd:nonNegativeInteger
owl:onDatatype xsd:integer ;
owl:withRestrictions (
[
- xsd:pattern "[0-9]*"
+ xsd:pattern "[+]?[0-9]+"
] [
xsd:minInclusive 0
]
@@ -371,7 +373,7 @@ xsd:positiveInteger
owl:onDatatype xsd:nonNegativeInteger ;
owl:withRestrictions (
[
- xsd:pattern "[+]?[0-9]+"
+ xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*"
] [
xsd:minInclusive 1
]
@@ -406,7 +408,7 @@ xsd:time
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]"
+ xsd:pattern "(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?"
] [
xsd:whiteSpace "collapse"
]