为什么为表单数据生成的模式与表单的顺序不同?

Why is the generated schema for form data in a different order than the form?

我注意到在为表单数据生成的架构中,架构的顺序与表单中字段的顺序不匹配。模式的顺序似乎与 bind 元素的顺序完全匹配。这些似乎没有特定的顺序。我可能不会注意到,但在一个案例中它导致了副作用。

除了顶级部分之外,架构的元素包含在 <xs:all> 中,而不是 <xs:sequence> 中,后者会强制执行序列。

这让我相信您只是决定不 specify/enforce 在架构中排序。

所以,我可能会在这里回答我自己的问题。我说得对吗?

理想情况下,架构的顺序应与表单的顺序相同。

架构中的元素顺序遵循表单定义中的 xf:bind 顺序。到目前为止,一切都很好。但是,xf:bind顺序不一定跟在控制顺序后面。后者,即使不应该导致任何 user-facing 错误,也不是理想的,并且包含在 issue 1361.