Skip to content

Commit a64be4e

Browse files
committed
Fix the LifecycleConfiguration schema
1 parent 4f2b24a commit a64be4e

File tree

2 files changed

+39
-21
lines changed

2 files changed

+39
-21
lines changed

doc/rnc/lifecycle_configuration.rnc

+10-5
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,21 @@ Expiration =
2424
element ExpiredObjectDeleteMarker { xsd:boolean }
2525

2626
Filter =
27-
element Prefix { xsd:string }? &
28-
element Tag {
29-
element Key { xsd:string } &
30-
element Value { xsd:string }
31-
}*
27+
element Prefix { xsd:string } |
28+
element Tag { Tag } |
29+
element And {
30+
element Prefix { xsd:string }? &
31+
element Tag { Tag }+
32+
}
3233

3334
NoncurrentVersionTransition =
3435
element NoncurrentDays { xsd:nonNegativeInteger } &
3536
element StorageClass { StorageClass }
3637

38+
Tag =
39+
element Key { xsd:string } &
40+
element Value { xsd:string }
41+
3742
Transition =
3843
Expiration &
3944
element StorageClass { StorageClass }

swift3/schema/lifecycle_configuration.rng

+29-16
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,28 @@
6868
</choice>
6969
</define>
7070
<define name="Filter">
71-
<interleave>
72-
<optional>
73-
<element name="Prefix">
74-
<data type="string"/>
75-
</element>
76-
</optional>
77-
<zeroOrMore>
78-
<element name="Tag">
79-
<interleave>
80-
<element name="Key">
71+
<choice>
72+
<element name="Prefix">
73+
<data type="string"/>
74+
</element>
75+
<element name="Tag">
76+
<ref name="Tag"/>
77+
</element>
78+
<element name="And">
79+
<interleave>
80+
<optional>
81+
<element name="Prefix">
8182
<data type="string"/>
8283
</element>
83-
<element name="Value">
84-
<data type="string"/>
84+
</optional>
85+
<oneOrMore>
86+
<element name="Tag">
87+
<ref name="Tag"/>
8588
</element>
86-
</interleave>
87-
</element>
88-
</zeroOrMore>
89-
</interleave>
89+
</oneOrMore>
90+
</interleave>
91+
</element>
92+
</choice>
9093
</define>
9194
<define name="NoncurrentVersionTransition">
9295
<interleave>
@@ -98,6 +101,16 @@
98101
</element>
99102
</interleave>
100103
</define>
104+
<define name="Tag">
105+
<interleave>
106+
<element name="Key">
107+
<data type="string"/>
108+
</element>
109+
<element name="Value">
110+
<data type="string"/>
111+
</element>
112+
</interleave>
113+
</define>
101114
<define name="Transition">
102115
<interleave>
103116
<ref name="Expiration"/>

0 commit comments

Comments
 (0)