From 291d16e6709d88cb202acc042c9395c420fd580d Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 27 Oct 2018 17:15:24 +0200 Subject: WIP: Improve validation --- schemas.lv2/xsd.ttl | 175 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 155 insertions(+), 20 deletions(-) (limited to 'schemas.lv2') diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl index 972a1a1..f034e6e 100644 --- a/schemas.lv2/xsd.ttl +++ b/schemas.lv2/xsd.ttl @@ -7,6 +7,9 @@ xsd: a owl:Ontology ; rdfs:comment "XML Schema Datatypes" . +xsd:anySimpleType + a rdfs:Datatype . + xsd:ENTITY a rdfs:Datatype ; owl:onDatatype xsd:NCName . @@ -33,29 +36,49 @@ xsd:Name xsd:QName a rdfs:Datatype ; - rdfs:label "XML qualified name" . + rdfs:label "XML qualified name" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:anyURI a rdfs:Datatype ; - rdfs:label "URI reference" . + rdfs:label "URI reference" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:base64Binary a rdfs:Datatype ; rdfs:comment "Base64-encoded arbitrary binary data." ; rdfs:label "base64 binary" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?" ] + [ + xsd:whiteSpace "collapse" + ] ) . xsd:boolean a rdfs:Datatype ; rdfs:label "boolean" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ xsd:pattern "(true|false)" ] + [ + xsd:whiteSpace "collapse" + ] ) . xsd:byte @@ -64,55 +87,90 @@ xsd:byte owl:onDatatype xsd:short ; owl:withRestrictions ( [ - xsd:maxInclusive 127 + xsd:minInclusive -128 ] [ - xsd:minInclusive -128 + xsd:maxInclusive 127 ] ) . xsd:date a rdfs:Datatype ; rdfs:label "date" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ - xsd:pattern "-?[0-9][0-9][0-9][0-9]([0-9]*)?-(0[1-9]|1[0-2])-([0-3][0-9])([+-]([0-1][0-9]|2[0-3]):[0-5][0-9])?" + 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:whiteSpace "collapse" ] ) . xsd:dateTime a rdfs:Datatype ; - rdfs:label "date time" . + rdfs:label "date time" ; + 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:whiteSpace "collapse" + ] + ) . xsd:decimal a rdfs:Datatype ; rdfs:comment "A subset of the real numbers, which can be represented by decimal numerals." ; rdfs:label "decimal" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ xsd:pattern "[+-]?[0-9]*\\.?[0-9]*" ] + [ + xsd:whiteSpace "collapse" + ] ) . xsd:double a rdfs:Datatype ; rdfs:comment "IEEE double-precision 64-bit floating point." ; rdfs:label "double" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?" ] + [ + xsd:whiteSpace "collapse" + ] ) . xsd:duration a rdfs:Datatype ; - rdfs:label "duration" . + rdfs:label "duration" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:float a rdfs:Datatype ; rdfs:comment "IEEE single-precision 32-bit floating point." ; rdfs:label "float" ; - owl:onDatatype xsd:double . + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?" + ] + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:fractionDigits a rdf:Property , @@ -122,28 +180,62 @@ xsd:fractionDigits rdfs:range xsd:nonNegativeInteger . xsd:gDay - a rdfs:Datatype . + a rdfs:Datatype ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:gMonth - a rdfs:Datatype . + a rdfs:Datatype ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:gMonthDay - a rdfs:Datatype . + a rdfs:Datatype ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:gYear - a rdfs:Datatype . + a rdfs:Datatype ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:gYearMonth - a rdfs:Datatype . + a rdfs:Datatype ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:hexBinary a rdfs:Datatype ; rdfs:comment "Hex-encoded arbitrary binary data." ; rdfs:label "hex binary" ; + owl:onDatatype xsd:anySimpleType ; owl:withRestrictions ( [ xsd:pattern "[0-9A-F]*" ] + [ + xsd:whiteSpace "collapse" + ] ) . xsd:int @@ -152,10 +244,10 @@ xsd:int owl:onDatatype xsd:long ; owl:withRestrictions ( [ - xsd:maxInclusive 2147483647 + xsd:minInclusive -2147483648 ] [ - xsd:minInclusive -2147483648 + xsd:maxInclusive 2147483647 ] ) . @@ -188,10 +280,10 @@ xsd:long owl:onDatatype xsd:integer ; owl:withRestrictions ( [ - xsd:maxInclusive 9223372036854775807 + xsd:minInclusive -9223372036854775808 ] [ - xsd:minInclusive -9223372036854775808 + xsd:maxInclusive 9223372036854775807 ] ) . @@ -259,7 +351,12 @@ xsd:normalizedString a rdfs:Datatype ; rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters." ; rdfs:label "normalized string" ; - owl:onDatatype xsd:string . + owl:onDatatype xsd:string ; + owl:withRestrictions ( + [ + xsd:whiteSpace "replace" + ] + ) . xsd:pattern a rdf:Property , @@ -267,6 +364,21 @@ xsd:pattern rdfs:comment "A regular expression that matches complete valid literals." ; rdfs:label "pattern" . +xsd:whiteSpace + a rdf:Property , + owl:DatatypeProperty ; + rdfs:comment "A string that describes whitespace normalization for a string type." ; + rdfs:label "white space" ; + rdfs:range [ + a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( + [ + xsd:pattern "(preserve|replace|collapse)" + ] + ) + ] . + xsd:positiveInteger a rdfs:Datatype ; rdfs:label "positive integer" ; @@ -291,27 +403,50 @@ xsd:short [ xsd:minInclusive -32768 ] + ) , ( + [ + xsd:minInclusive -32768 + ] + [ + xsd:maxInclusive 32767 + ] ) . xsd:string a rdfs:Datatype ; rdfs:comment "A character string." ; - rdfs:label "string" . + rdfs:label "string" ; + owl:onDatatype xsd:anySimpleType ; + owl:withRestrictions ( + [ + xsd:whiteSpace "preserve" + ] + ) . xsd:time a rdfs:Datatype ; rdfs:label "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:whiteSpace "collapse" + ] ) . xsd:token a rdfs:Datatype ; rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters, that have no leading or trailing spaces (#x20) and that have no internal sequences of two or more spaces." ; rdfs:label "token" ; - owl:onDatatype xsd:normalizedString . + owl:onDatatype xsd:normalizedString ; + owl:withRestrictions ( + [ + xsd:whiteSpace "collapse" + ] + ) . xsd:totalDigits a rdf:Property , -- cgit v1.2.1