diff --git a/langspec/schemas/xproc.rnc b/langspec/schemas/xproc.rnc
index e839da9dc..02dc8272c 100644
--- a/langspec/schemas/xproc.rnc
+++ b/langspec/schemas/xproc.rnc
@@ -426,11 +426,14 @@ Choose =
common.attributes,
use-when.attr?,
((Documentation|PipeInfo)*,
- WithInput?,
- Variable*,
- (When|Documentation|PipeInfo)*,
- Otherwise?,
- (Documentation|PipeInfo)*)
+ WithInput?,
+
+ ((((Documentation|PipeInfo)*, When)+,
+ ((Documentation|PipeInfo)*, Otherwise)?)
+ | (((Documentation|PipeInfo)*, When)*,
+ ((Documentation|PipeInfo)*, Otherwise))),
+
+ (Documentation|PipeInfo)*)
}
[
diff --git a/langspec/schemas/xproc.rng b/langspec/schemas/xproc.rng
index b5855f88b..1ee87cb06 100644
--- a/langspec/schemas/xproc.rng
+++ b/langspec/schemas/xproc.rng
@@ -793,19 +793,48 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+