Skip to content

Commit 8bb5645

Browse files
committed
Update README in test-set sequenceUnbounded
1 parent f3f38a6 commit 8bb5645

1 file changed

Lines changed: 14 additions & 43 deletions

File tree

Lines changed: 14 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,24 @@
1-
# Sequence maxOccurs="unbounded" Test
1+
## Sequence maxOccurs="unbounded" Test
22

3-
This test documents a known EXIP limitation with `<sequence maxOccurs="unbounded">` patterns.
3+
Attempted reproducer for a grammar collision issue found in CCSDS NDM/XML 4.0 schemas.
44

5-
## Issue
5+
### Real-World Issue
66

7-
EXIP currently triggers an assertion at `src/grammarGen/src/genUtils.c:268` when processing schemas containing:
7+
CCSDS NDM/XML 4.0 schemas trigger a grammar collision error during schema generation:
88

9-
```xml
10-
<xsd:sequence maxOccurs="unbounded">
11-
<xsd:element .../>
12-
<xsd:element .../>
13-
</xsd:sequence>
9+
```
10+
> Grammar collision: duplicate adjacent elements in sequence not implemented yet at genUtils.c, line 269
1411
```
1512

16-
This pattern is valid W3C XML Schema but EXIP's collision detection is too strict.
17-
18-
## Test Files
19-
20-
- `test.xsd` - Minimal schema demonstrating the pattern
21-
- `test.xml` - Sample data exercising the schema
22-
- `check_sequence_unbounded.c` - Test code (in `tests/` directory)
23-
24-
## Pattern
25-
26-
The schema represents: `(item? value?)*`
27-
28-
This allows:
29-
- Zero or more sequence iterations
30-
- Each iteration can have 0-1 item and 0-1 value
31-
- Items can appear after values across sequence boundaries
32-
33-
## Expected Behavior
34-
35-
**Current:** Assertion failure at genUtils.c:268
36-
37-
**Once fixed:** Grammar generation should succeed (EXIP_OK)
38-
39-
## Why This Matters
13+
The schemas return `EXIP_NOT_IMPLEMENTED_YET` (error code 1) and cannot be loaded.
4014

41-
1. CCSDS NDM/XML 4.0 specification uses this pattern
42-
2. Pattern is memory-efficient (loop-back edges, no rule explosion)
43-
3. Infrastructure already exists (same as element-level maxOccurs="unbounded")
44-
4. Fix is likely relaxing overly-strict validation
15+
### Reproducer Status
4516

46-
## Running the Test
17+
Incomplete - the minimal schema here does **not** trigger the collision. The `test_sequence_unbounded` test in `check_strict_grammar` currently passes (schema loads successfully with `EXIP_OK`).
4718

48-
```bash
49-
cd build/vs2022/Debug # or Release
50-
./check_sequence_unbounded.exe ../../tests/test-set
51-
```
19+
### Test Files
5220

53-
Expected: Currently fails with assertion. Once fixed, should pass.
21+
- `test.xsd` - Minimal schema attempting to reproduce the pattern
22+
- `test.xsd.exi` - EXI-encoded schema
23+
- `test.xml` - Sample data
24+
- `test.xml.exi` - EXI-encoded data

0 commit comments

Comments
 (0)