首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Schematron生成HTML表单

从Schematron生成HTML表单
EN

Stack Overflow用户
提问于 2017-01-20 18:50:28
回答 1查看 229关注 0票数 2

可以从Schematron生成HTML表单吗?我在Schematron文件中描述了一堆模式。我必须创建允许输入数据的HTML表单,这些数据将转换为与Schematrons兼容的XML文档。而不是手动开发表单,我想以任何方式生成它们。有可能吗?你知道解决这个问题的工具吗?

我发现了类似的从XSD生成HTML表单的工具,例如https://github.com/davidmoten/xsd-forms

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 02:39:24

非常有趣的问题。它可以使用XSD完成,因为XSD描述了有效XML文档的结构(什么元素可以出现、以什么顺序出现、出现的次数等)。因此,应用程序可以绕过这个过程,向用户显示一个表单,允许用户填充输入的小部件元素、重新排序元素等,最终将生成有效的XML文档。

然而,Schematron通常并不描述XML文档结构,而是给出了非常强大的语义规则或约束。因此(在一般情况下)该过程不能反向显示生成有效XML文档的表单。但是,它可以根据您的Schematron的外观来完成,但请考虑这个简单的示例(取自this page):

代码语言:javascript
复制
<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。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41761837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档