Commit e32127a
* Update test/build dependencies: FAKE 6.1.4, NUnit 3.13.3, FsUnit 4.2.0, FsCheck 2.16.6
- FAKE packages: 6.1.3 → 6.1.4 (patch)
- NUnit: 3.13.1 → 3.13.3 (patch)
- FsUnit: 4.0.4 → 4.2.0 (minor)
- FsCheck: 2.15.1 → 2.16.6 (minor)
Build: passes (0 errors)
Tests: all offline tests pass; network tests skip due to sandbox
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix #1419: Add cycle guard for XSD group references in XsdInference
Add a VisitingGroups HashSet to ParsingContext and guard the GroupRef
case in parseParticle. When a group is already being visited, return
Empty (an empty particle) instead of recursing infinitely.
This prevents a StackOverflowException when parsing XSD schemas that
contain groups forming cycles (e.g. group A contains group ref B,
and group B's resolved content eventually leads back to group A via
the compiled XmlSchema object graph).
Add a test verifying that a recursive content model schema with a
group referencing itself through element content completes without error.
Closes #1419
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Repo Assist <repo-assist@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Don Syme <dsyme@users.noreply.github.com>
Co-authored-by: Don Syme <dsyme@github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent e02503d commit e32127a
2 files changed
Lines changed: 46 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
| 107 | + | |
| 108 | + | |
107 | 109 | | |
108 | 110 | | |
109 | 111 | | |
| 112 | + | |
110 | 113 | | |
111 | 114 | | |
112 | 115 | | |
| |||
183 | 186 | | |
184 | 187 | | |
185 | 188 | | |
186 | | - | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
187 | 200 | | |
188 | 201 | | |
189 | 202 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
934 | 934 | | |
935 | 935 | | |
936 | 936 | | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
0 commit comments