Introduction
This is the namespace document for the XML schema used in the Protocol for Web Description resources (POWDER). It provides a human-readable summary of the XML Schema itself.
A series of simple (atomic) datatypes is defined, followed by a list of datatypes derived from them. These are used as the range of the various RDF properties defined in POWDER: Grouping of Resources [GROUP].
The Description Resource complex type is provided to facilitate quick validation of a DR, when serialized in XML, before full semantic processing in an RDF environment. Description Resources themselves are defined separately [DR].
For each atomic type we have defined a pattern restriction (i.e. a regular expression). For those data types that refer to URI components, these are, of course, conformant with RFC3986. Appendix B of that RFC provides a regular expression that is useful in splitting up a URI into its components:
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? 12 3 4 5 6 7 8 9
However, matching against this regular expression is not necessarily the same as validating a component once it has been
separated from the URI. In some cases therefore we define our own pattern that we believe is more useful as a validation tool.
White space is excluded from all atomic data types except response
.
The group is particularly keen to receive feedback on whether we have chosen wisely and whether there are better patterns for validating URI components.
Simple Types
uriScheme
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriScheme
Base: xsd:string
Pattern value restriction: [a-zA-Z]+[a-zA-Z0-9\+\-\.]*
The datatype denoting a string corresponding to the scheme component of a URI.
uriUserInfo
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriUserInfo
Base: xsd:string
Pattern value restriction: [^/?#@\s]+
The datatype denoting a string corresponding to the userInfo component of a URI.
uriHost
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriHost
Base: xsd:string
Pattern value restriction: [^/?#@:\s]+
The datatype denoting a string corresponding to the host component of a URI.
uriPort
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriPort
Base: xsd:string
Pattern value restriction: (\d{1}|[1-9]\d*)
The datatype denoting a string corresponding to the port component of a URI.
uriPath
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriPath
Base: xsd:string
Pattern value restriction: [^?#\s]+
The datatype denoting a string corresponding to the path component of a URI.
uriQuery
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriQuery
Base: xsd:string
Pattern value restriction: [^#\s]+
The datatype denoting a string corresponding to the query component of a URI.
uriFragment
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriFragment
Base: xsd:string
Pattern value restriction: [^#\s]+
The datatype denoting a string corresponding to the fragment component of a URI.
uriPortRange
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:uriPortRange
Base: xsd:string
Pattern value restriction: (\d{1}|[1-9]\d*)\-(\d{1}|[1-9]\d*)
The datatype denoting a string corresponding to a range of logical ports.
The regular expressions used in the following two data types are provisional. The group would welcome feedback on this, particularly on developing a regular expression for an IPv6 address.
ip
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:ip
Base: xsd:string
Pattern value restriction: (((([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]))|((([\da-fA-F]{1,4})|(\:))\:){7}(([\da-fA-F]{1,4})|(\:))))
The datatype denoting a string corresponding to a IPv4 or IPv6 address.
cidr
Atomic Datatype
Type: xsd:simpleType
Name: wdrd:cidr
Base: xsd:string
Pattern value restriction: (((([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])\/(\d|[1-2]\d|3[0-2]))|((([\da-fA-F]{0,4})|(\:))\:){7}(([\da-fA-F]{0,4})|(\:)))\/([1-9]?\d|1[01]\d|12[0-8])))
stringList
The datatype denoting a space-separated list of strings. This is used for POWDER vocabulary properties having as range a space-separated list of generic strings.
uriList
The datatype denoting a space-separated list of URIs.
uriSchemeList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriSchemeList
Item: wdrd:uriScheme
Range datatype for wdr:includeSchemes wdr:excludeSchemes
The datatype denoting a space-separated list of URI schemes.
uriUserInfoList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriUserInfoList
Item: wdrd:uriUserInfo
Range datatype for wdr:includeUsers wdr:excludeUsers
The datatype denoting a space-separated list of URI userInfos.
uriHostList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriHostList
Item: wdrd:uriHost
Range datatype for wdr:includeHosts wdr:excludeHosts
The datatype denoting a space-separated list of URI hosts.
uriPortList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriPortList
Item: wdrd:uriPort
Range datatype for wdr:includePorts wdr:excludePorts
The datatype denoting a space-separated list of URI ports.
uriPathList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriPathList
Item: wdrd:uriPath
Range datatype for wdr:includeExactPaths wdr:excludeExactPaths wdr:includePathContains wdr:excludePathContains wdr:includePathStartsWith wdr:excludePathStartsWith wdr:includePathEndsWith wdr:excludePathEndsWith
The datatype denoting a space-separated list of URI paths.
uriQueryList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriQueryList
Item: wdrd:uriQuery
Range datatype for wdr:includeExactQueries wdr:excludeExactQueries wdr:includeQueryContains wdr:excludeQueryContains
The datatype denoting a space-separated list of URI queries.
uriFragmentList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriFragmentList
Item: wdrd:uriFragment
Range datatype for wdr:includeFragments wdr:excludeFragments
The datatype denoting a space-separated list of URI fragments.
uriPortRangeList
List Datatype
Type: xsd:simpleType
Name: wdrd:uriPortRangeList
Item: wdrd:uriPortRange
Range datatype for wdr:includeRanges wdr:excludePortRanges
The datatype denoting a space-separated list of logical port ranges.
ipList
List Datatype
Type: xsd:simpleType
Name: wdrd:ipList
Item: wdrd:ip
Range datatype for wdr:includeIPs wdr:excludeIPs
The datatype denoting a space-separated list of IP addresses.
cidrList
List Datatype
Type: xsd:simpleType
Name: wdrd:cidrList
Item: wdrd:cidr
Range datatype for wdr:includeIpRanges wdr:excludeIpRanges
The datatype denoting a space-separated list of CIDR blocks.
Complex Types
Description Resource
A complex type will defined for easy validation of a Description Resource when serialized in XML.
Acknowledgements
The editors duly acknowledge contributions made by all members of the POWDER Working Group.
References
- [GROUP]
- Protocol for Web Description Resources (POWDER): Grouping of Resources, A Perego, P Archer. This document is at http://www.w3.org/TR/powder-grouping/
- [DR]
- Protocol for Web Description Resources (POWDER): Description Resources, K Smith, P Archer. This document is at http://www.w3.org/TR/powder-dr/