This is the schema for the UPnP Service Description document, in the RELAX NG Compact syntax.
# Relax NG schema for the UPnP Service Control Protocol Definition files. See # section 2.3 of UPnP Device Architecture 1.0 for the canonical reference. default namespace = "urn:schemas-upnp-org:service-1-0" start = scpd scpd = element scpd { element specVersion { element major { text } & element minor { text } } & element actionList { element action { element name { text } & element argumentList { element argument { element name { text } & element direction { "in"|"out" } & element retval { text }? & element relatedStateVariable { text } }+ }? }+ }? & element serviceStateTable { element stateVariable { attribute sendEvents { "yes"|"no" }? & element name { text } & element dataType { "ui1"|"ui2"|"ui4"|"i1"|"i2"|"i4"|"int"| "r4"|"r8"|"number"|"fixed.14.4"|"float"| "char"|"string"| "date"|"dateTime"|"dateTime.tz"|"time"|"time.tz"| "boolean"|"bin.base64"|"bin.hex"|"uri"|"uuid" } & element defaultValue { text }? & ( element allowedValueList { element allowedValue { text }+ } | element allowedValueRange { element minimum { text } & element maximum { text } & element step { text }? } )? }+ } }