可以从Schematron生成HTML表单吗?我在Schematron文件中描述了一堆模式。我必须创建允许输入数据的HTML表单,这些数据将转换为与Schematrons兼容的XML文档。而不是手动开发表单,我想以任何方式生成它们。有可能吗?你知道解决这个问题的工具吗?
我发现了类似的从XSD生成HTML表单的工具,例如https://github.com/davidmoten/xsd-forms。
发布于 2017-01-25 02:39:24
非常有趣的问题。它可以使用XSD完成,因为XSD描述了有效XML文档的结构(什么元素可以出现、以什么顺序出现、出现的次数等)。因此,应用程序可以绕过这个过程,向用户显示一个表单,允许用户填充输入的小部件元素、重新排序元素等,最终将生成有效的XML文档。
然而,Schematron通常并不描述XML文档结构,而是给出了非常强大的语义规则或约束。因此(在一般情况下)该过程不能反向显示生成有效XML文档的表单。但是,它可以根据您的Schematron的外观来完成,但请考虑这个简单的示例(取自this page):
<schema xmlns="http://www.ascc.net/xml/schematron" >
<pattern name="Test integer">
<rule context="AAA">
<assert test="floor(.) = number(.)">The AAA value is not an integer.</assert>
</rule>
</pattern>
</schema>有许多不同的XML文档结构可以生成对此Schematron有效的XML文档,因此您可能有一个表单来填充元素值,但是Schematron没有提供关于文档结构应该是什么的足够信息:元素应该放在哪里?元素应该出现多少次?等等。
来源:在我的最后一个学位项目中,我构建了一个多平台应用程序,它提供了XSD (以及可选的Schematron和XSLT),它生成了一个表单,以便任何用户都可以创建一个针对XSD和Schematron有效的XML文档,而不需要了解任何关于XML/XSD/Schematron/XSLT的信息。Schematron的信息(如果存在)用于执行额外的验证,甚至动态禁用枚举值,如果选择该值,将导致Schematron错误。但请注意,Schematron的信息不足以知道XML文档应该具有什么结构(该信息存在于XSD中)。如果您想知道,可以使用XSLT文档(如果存在)将生成的XML文档转换为更适合用户的其他类型的文档,如HTML或PDF。
https://stackoverflow.com/questions/41761837
复制相似问题