OSDN Git Service

383f695fcb3c6a128228b1fa2f672d152326da60
[stigmata/stigmata.git] / src / main / resources / META-INF / birthmark-1.0.rng
1 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
2          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3   <start>
4     <ref name="birthmark-result-set"/>
5   </start>
6
7   <define name="birthmark-result-set">
8     <element name="birthmark-result-set">
9       <optional>
10         <ref name="birthmark-services"/>
11       </optional>
12       <optional>
13         <ref name="extracted-birthmarks"/>
14       </optional>
15       <optional>
16         <ref name="comparison-result-set"/>
17       </optional>
18     </element>
19   </define>
20
21   <define name="birthmark-services">
22     <element name="birthmark-services">
23       <zeroOrMore>
24         <ref name="birthmark-service"/>
25       </zeroOrMore>
26     </element>
27   </define>
28
29   <define name="birthmark-service">
30       <element name="birthmark-service">
31       <element name="type">
32         <data type="type"/>
33       </element>
34       <interleaves>
35         <optional>
36           <element name="display-name">
37             <data type="token"/>
38           </element>
39         </optional>
40         <optional>
41           <element name="description">
42             <data type="string"/>
43           </element>
44         </optional>
45         <optional>
46           <element name="class-name">
47             <data type="token"/>
48           </element>
49         </optional>
50         <optional>
51           <element name="extractor">
52             <data type="token"/>
53           </element>
54         </optional>
55         <optional>
56           <element name="comparator">
57             <data type="token"/>
58           </element>
59         </optional>
60       </element>
61     </interleaves>
62   </define>
63
64   <define name="extracted-birthmarks">
65     <element name="extracted-birthmarks">
66       <optional>
67         <element name="unit">
68           <choice>
69             <value>CLASS</value>
70             <value>PACKAGE</value>
71             <value>ARCHIVE</value>
72           </choice>
73         </element>
74       </optional>
75       <optional>
76         <element name="birthmark-types">
77           <oneOrMore>
78             <element name="birthmark-type">
79               <data type="string" />
80             </element>
81           </oneOrMore>
82         </element>
83       </optional>
84       <zeroOrMore>
85         <ref name="extracted-birthmark"/>
86       </zeroOrMore>
87     </element>
88   </define>
89
90   <define name="extracted-birthmark">
91     <element name="extracted-birthmark">
92       <element name="name">
93         <data type="string"/>
94       </element>
95       <element name="location">
96         <data type="string"/>
97       </element>
98       <ref name="birthmark" />
99     </element>
100   </define>
101
102   <define name="birthmark">
103     <element name="birthmark">
104       <attribute name="type">
105         <data type="string"/>
106       </attribute>
107       <attribute name="count">
108         <data type="nonNegativeInteger"/>
109       </attribute>
110       <zeroOrMore>
111         <element name="element">
112           <data type="string"/>
113         </element>
114       </zeroOrMore>
115     </element>
116   </define>
117
118   <define name="comparison-result-set">
119     <element name="comparison-result-set">
120       <zeroOrMore>
121         <ref name="comparison-result" />
122       </zeroOrMore>
123     </element>
124   </define>
125   <define name="comparison-result">
126     <element name="comparison-result">
127       <element name="target1">
128         <ref name="target" />
129       </element>
130       <element name="target2">
131         <ref name="target" />
132       </element>
133       <element name="birthmark-similarities">
134         <zeroOrMore>
135           <ref name="birthmark-similarity">
136         </zeroOrMore>
137       </element>
138       <element name="similarity">
139         <data type="double" />
140       </element>
141     </element>
142   </define>
143
144   <define name="target">
145     <element name="name">
146       <data type="string" />
147     </element>
148     <element name="location">
149       <data type="string" />
150     </element>
151   </define>
152
153   <define name="birthmark-similarity">
154     <element name="birthmark-similarity">
155       <attribute name="type">
156         <data type="string" />
157       </attribute>
158       <attribute name="comparison-count">
159         <data type="nonNegativeInteger" />
160       </attribute>
161       <data type="double" />
162     </element>
163   </define>
164 </grammar>