1# id-dap.sg  --  Authorative ID-DAP 1.0 Service Schema
2# Author: Sampo Kellomaki (sampo@symlabs.com)
3# http://www.w3.org/2001/03/webdata/xsv
4# $Id: id-dap.sg,v 1.2 2007-06-19 15:17:04 sampo Exp $
5# This schema reflects Liberty ID Directory Access Protocol,
6# version 1.0-07 of 11.10.2006
7
8target(dap,     urn:liberty:id-sis-dap:2006-08:dst-2.1)
9import(dst,     urn:liberty:dst:2006-08,      liberty-idwsf-dst-v2.1.xsd)
10import(subs,    urn:liberty:ssos:2006-08,     liberty-idwsf-subs-v1.0.xsd)
11import(lu,      urn:liberty:util:2006-08,     liberty-idwsf-utility-v2.0.xsd)
12
13Create         -> %dap:CreateType
14CreateResponse -> %dap:CreateResponseType
15Query          -> %dap:QueryType
16QueryResponse  -> %dap:QueryResponseType
17Modify         -> %dap:ModifyType
18ModifyResponse -> %dap:ModifyResponseType
19Delete         -> %dap:DeleteType
20DeleteResponse -> %dap:DeleteResponseType
21Notify         -> %dap:NotifyType
22NotifyResponse -> %dap:NotifyResponseType
23
24%SelectType:
25    dap:dn?            -> %xs:string
26    dap:filter?        -> %xs:string
27    @scope?        -> %xs:integer  default(0)
28    @sizelimit?    -> %xs:integer  default(0)
29    @timelimit?    -> %xs:integer  default(0)
30    @attributes?   -> %xs:string
31    @typesonly?    -> %xs:boolean  default(false)
32    @derefaliases? -> %xs:integer  default(0)
33    ;
34
35%TestOpType:      base(dap:SelectType) ;
36%SortType:        base(xs:string) ;
37%TriggerType:     base(xs:string) ;
38%AggregationType: base(xs:string) ;
39
40%AppDataType:
41  dap:LDIF?
42  dap:Subscription?
43  ;
44
45LDIF: base(xs:string)
46  &@dst:localizedLeafAttributes
47  ;
48
49%CreateType:          base(dst:RequestType)
50  dap:Subscription*
51  dap:CreateItem+
52  dap:ResultQuery*
53  ;
54
55CreateItem            -> %dap:CreateItemType
56%CreateItemType:
57  dap:NewData?
58  &@dst:CreateItemAttributeGroup
59  ;
60
61NewData               -> %dap:AppDataType
62
63%CreateResponseType:  base(dap:DataResponseType) ;
64%DataResponseType:    base(dst:DataResponseBaseType)
65  dap:ItemData*
66  ;
67
68%QueryType:      base(dst:RequestType)
69  dap:TestItem*
70  dap:QueryItem*
71  dap:Subscription*
72  ;
73
74TestItem         -> %dap:TestItemType
75%TestItemType:   base(dst:TestItemBaseType)
76  dap:TestOp?    -> %dap:TestOpType
77  ;
78
79QueryItem        -> %dap:QueryItemType
80%QueryItemType:  base(dap:ResultQueryType)
81  &@dst:PaginationAttributeGroup
82  ;
83
84%QueryResponseType:  base(dst:DataResponseBaseType)
85  dst:TestResult*
86  dap:Data*
87  ;
88
89Data             -> %dap:DataType
90%DataType:       base(dap:ItemDataType)
91  &@dst:PaginationResponseAttributeGroup
92  ;
93
94%ModifyType:          base(dst:RequestType)
95  dap:Subscription*
96  dap:ModifyItem+
97  dap:ResultQuery*
98  ;
99
100ModifyItem            -> %dap:ModifyItemType
101%ModifyItemType:
102  dap:Select?
103  dap:NewData?
104  &@dst:ModifyItemAttributeGroup
105  ;
106
107%ModifyResponseType:  base(dap:DataResponseType) ;
108
109%DeleteType:          base(dst:RequestType)
110  dap:DeleteItem+
111  ;
112
113DeleteItem            -> %dap:DeleteItemType
114%DeleteItemType:      base(dst:DeleteItemBaseType)
115  dap:Select?
116  ;
117
118%DeleteResponseType:  base(lu:ResponseType) ;
119
120Select                -> %dap:SelectType
121
122ResultQuery           -> %dap:ResultQueryType
123%ResultQueryType:     base(dst:ResultQueryBaseType)
124  dap:Select?
125  dap:Sort?           -> %dap:SortType
126  ;
127
128ItemData              -> %dap:ItemDataType
129%ItemDataType:        base(dap:AppDataType)
130  &@dst:ItemDataAttributeGroup
131  ;
132
133Subscription          -> %dap:SubscriptionType
134%SubscriptionType:    base(subs:SubscriptionType)
135  dap:ResultQuery*
136  dap:Aggregation?    -> %dap:AggregationType
137  dap:Trigger?        -> %dap:TriggerType
138  ;
139
140%NotifyType:          base(dst:RequestType)
141  dap:Notification*
142  &@subs:NotifyAttributeGroup
143  ;
144
145Notification          -> %dap:NotificationType
146%NotificationType:    base(subs:NotificationType)
147  dap:ItemData*
148  ;
149
150%NotifyResponseType:  base(subs:NotifyResponseType) ;
151
152#EOF
153