forked from marklogic-community/ml-rest-lib
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
13 changed files
with
2,089 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
default namespace = "http://marklogic.com/appservices/rest" | ||
|
||
start = Options | ||
|
||
Options = | ||
element options { | ||
attribute user-params { "ignore" | "allow" | "forbid" }?, | ||
Request* | ||
} | ||
|
||
Request = | ||
element request { | ||
attribute uri { text }?, | ||
attribute endpoint { text }?, | ||
attribute user-params { "ignore" | "allow" | "forbid" }?, | ||
(UriParam | Param | Http | Condition)* | ||
} | ||
|
||
UriParam = | ||
element uri-param { | ||
attribute name { text }, | ||
attribute as { text }?, | ||
text | ||
} | ||
|
||
Param = | ||
element param { | ||
attribute name { text }, | ||
attribute as { text }?, | ||
attribute values { text }?, | ||
attribute match { text }?, | ||
attribute default { text }?, | ||
attribute required { "true" | "false" }?, | ||
attribute repeatable { "true" | "false" }?, | ||
text | ||
} | ||
|
||
Http = | ||
element http { | ||
attribute method { text }, | ||
attribute user-params { "ignore" | "allow" | "forbid" }?, | ||
(Param | Condition)* | ||
} | ||
|
||
Privilege = | ||
element privilege { text } | ||
|
||
Kind = | ||
element kind { text } | ||
|
||
Condition = Or | And | Function | Auth | Accept | UserAgent | ||
|
||
Or = | ||
element or { | ||
Condition+ | ||
} | ||
|
||
And = | ||
element and { | ||
Condition+ | ||
} | ||
|
||
Auth = | ||
element auth { | ||
(Privilege+, Kind?) | ||
} | ||
|
||
Accept = | ||
element accept { | ||
text | ||
} | ||
|
||
UserAgent = | ||
element user-agent { | ||
text | ||
} | ||
|
||
Function = | ||
element function { | ||
attribute ns { xsd:anyURI }, | ||
attribute apply { xsd:QName }, | ||
attribute at { xsd:anyURI }, | ||
empty | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://marklogic.com/appservices/rest" xmlns:rest="http://marklogic.com/appservices/rest"> | ||
<xs:element name="options"> | ||
<xs:complexType> | ||
<xs:sequence> | ||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="rest:request"/> | ||
</xs:sequence> | ||
<xs:attribute name="user-params"> | ||
<xs:simpleType> | ||
<xs:restriction base="xs:token"> | ||
<xs:enumeration value="ignore"/> | ||
<xs:enumeration value="allow"/> | ||
<xs:enumeration value="forbid"/> | ||
</xs:restriction> | ||
</xs:simpleType> | ||
</xs:attribute> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="request"> | ||
<xs:complexType> | ||
<xs:choice minOccurs="0" maxOccurs="unbounded"> | ||
<xs:element ref="rest:uri-param"/> | ||
<xs:element ref="rest:param"/> | ||
<xs:element ref="rest:http"/> | ||
<xs:element ref="rest:Condition"/> | ||
</xs:choice> | ||
<xs:attribute name="uri"/> | ||
<xs:attribute name="endpoint"/> | ||
<xs:attribute name="user-params"> | ||
<xs:simpleType> | ||
<xs:restriction base="xs:token"> | ||
<xs:enumeration value="ignore"/> | ||
<xs:enumeration value="allow"/> | ||
<xs:enumeration value="forbid"/> | ||
</xs:restriction> | ||
</xs:simpleType> | ||
</xs:attribute> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="uri-param"> | ||
<xs:complexType mixed="true"> | ||
<xs:attribute name="name" use="required"/> | ||
<xs:attribute name="as"/> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="param"> | ||
<xs:complexType mixed="true"> | ||
<xs:attribute name="name" use="required"/> | ||
<xs:attribute name="as"/> | ||
<xs:attribute name="values"/> | ||
<xs:attribute name="match"/> | ||
<xs:attribute name="default"/> | ||
<xs:attribute name="required"> | ||
<xs:simpleType> | ||
<xs:restriction base="xs:token"> | ||
<xs:enumeration value="true"/> | ||
<xs:enumeration value="false"/> | ||
</xs:restriction> | ||
</xs:simpleType> | ||
</xs:attribute> | ||
<xs:attribute name="repeatable"> | ||
<xs:simpleType> | ||
<xs:restriction base="xs:token"> | ||
<xs:enumeration value="true"/> | ||
<xs:enumeration value="false"/> | ||
</xs:restriction> | ||
</xs:simpleType> | ||
</xs:attribute> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="http"> | ||
<xs:complexType> | ||
<xs:choice minOccurs="0" maxOccurs="unbounded"> | ||
<xs:element ref="rest:param"/> | ||
<xs:element ref="rest:Condition"/> | ||
</xs:choice> | ||
<xs:attribute name="method" use="required"/> | ||
<xs:attribute name="user-params"> | ||
<xs:simpleType> | ||
<xs:restriction base="xs:token"> | ||
<xs:enumeration value="ignore"/> | ||
<xs:enumeration value="allow"/> | ||
<xs:enumeration value="forbid"/> | ||
</xs:restriction> | ||
</xs:simpleType> | ||
</xs:attribute> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="privilege" type="xs:string"/> | ||
<xs:element name="kind" type="xs:string"/> | ||
<xs:element name="Condition" abstract="true"/> | ||
<xs:element name="or" substitutionGroup="rest:Condition"> | ||
<xs:complexType> | ||
<xs:sequence> | ||
<xs:element maxOccurs="unbounded" ref="rest:Condition"/> | ||
</xs:sequence> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="and" substitutionGroup="rest:Condition"> | ||
<xs:complexType> | ||
<xs:sequence> | ||
<xs:element maxOccurs="unbounded" ref="rest:Condition"/> | ||
</xs:sequence> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="auth" substitutionGroup="rest:Condition"> | ||
<xs:complexType> | ||
<xs:sequence> | ||
<xs:element maxOccurs="unbounded" ref="rest:privilege"/> | ||
<xs:element minOccurs="0" ref="rest:kind"/> | ||
</xs:sequence> | ||
</xs:complexType> | ||
</xs:element> | ||
<xs:element name="accept" substitutionGroup="rest:Condition" type="xs:string"/> | ||
<xs:element name="user-agent" substitutionGroup="rest:Condition" type="xs:string"/> | ||
<xs:element name="function" substitutionGroup="rest:Condition"> | ||
<xs:complexType> | ||
<xs:attribute name="ns" use="required" type="xs:anyURI"/> | ||
<xs:attribute name="apply" use="required" type="xs:QName"/> | ||
<xs:attribute name="at" use="required" type="xs:anyURI"/> | ||
</xs:complexType> | ||
</xs:element> | ||
</xs:schema> |
Oops, something went wrong.