All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rng.wadl.rnc Maven / Gradle / Ivy

namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace local = ""
namespace wadl = "http://wadl.dev.java.net/2009/02"

start =
  element wadl:application {
    doc*,
    grammars?,
    resources*,
    ( resource_type | method | representation | param )*,
    foreign-attribute,
    foreign-element
  }
doc = 
  element wadl:doc {
    attribute xml:lang { languageTag }?,
    attribute title { text }?,
    ( text | foreign-element )*,
    foreign-attribute
  }
grammars = 
  element wadl:grammars { 
    doc*,
    incl*,
    foreign-element 
  }
incl =
  element wadl:include {
    doc*, 
    attribute href { xsd:anyURI },
    foreign-attribute
  }
resources =
  element wadl:resources {
    doc*,
    resource+,
    attribute base { xsd:anyURI },
    foreign-attribute,
    foreign-element
  }
resource_type =
  element wadl:resource_type {
    doc*,
    param*,
    (method | resource)*,
    attribute id { xsd:token }?,
    foreign-element,
    foreign-attribute
  }
resource =
  element wadl:resource {
    doc*,
    param*,
    (method | resource)*,
    attribute type { list {xsd:anyURI} } ?,
    attribute path { text }?,
    attribute id { xsd:token }?,
    attribute queryType { text }?,
    foreign-element,
    foreign-attribute
  }
method =
  element wadl:method {
    (
      (
        attribute href { xsd:anyURI }
      ) | (
        doc*,
        request?,
        response*,
        attribute id { xsd:token }?,
        attribute name {
          "DELETE" | "GET" | "HEAD" | "POST" | "PUT" | xsd:token
        }
      )
    ),
    foreign-element,
    foreign-attribute
  }
request =
  element wadl:request {
    doc*,
    param*,
    representation*,
    foreign-attribute,
    foreign-element
  }
response =
  element wadl:response {
    doc*, 
    param*,
    representation*, 
    attribute status { list { xsd:int+ } }?,
    foreign-attribute, 
    foreign-element
  }
representation =
  element wadl:representation {
    (
      (
        attribute href { xsd:anyURI }
      ) | (
        doc*, 
        param*,
        attribute id { xsd:token }?,
        attribute element { xsd:QName }?,
        attribute mediaType { text }?,
        attribute profile { list { xsd:anyURI} }?
      )
    ),
    foreign-attribute,
    foreign-element
  }
param =
  element wadl:param {
    (
      (
        attribute href { xsd:anyURI }
      ) | (
        doc*,
        option*,
        link?,
        attribute name {xsd:token },
        attribute style { 
          "plain" | "query" | "matrix" | "header" | "template"
        },
        attribute id { xsd:token }?,
        attribute type { text }?,
        attribute default { text }?,
        attribute path { text }?,
        attribute required { xsd:boolean }?,
        attribute repeating { xsd:boolean }?,
        attribute fixed { text }?
      )
    ),
    foreign-element,
    foreign-attribute
  }
option = 
  element wadl:option {
    doc*,
    attribute value { xsd:string },
    attribute mediaType { text }?,
    foreign-element,
    foreign-attribute
  }
link = 
  element wadl:link {
    doc*,
    attribute resource_type { xsd:anyURI }?,
    attribute rel { xsd:token }?,
    attribute rev { xsd:token }?,
    foreign-element,
    foreign-attribute
  }
foreign-attribute = attribute * - (wadl:* | local:* | xml:*) { text }*
foreign-element =
  element * - (wadl:* | local:*) {
    (attribute * { text }
     | text
     | any-element)*
  }*
any-element =
  element * {
    (attribute * { text }
     | text
     | any-element)*
  }*
languageTag = xsd:string {
   pattern = "[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*"
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy