我试图在我的Ubuntu桌面上运行XForms。没有 目前似乎在XForms上有很多活动,而我正试图这样做 让Backplanejs运行。它没有用,并且在检查javascript时 我发现它依赖于Microsoft库和activex。
我决定继续我的erlang教育,而不是学习javascript 而是与xmerl挣扎。我创建了一个模式目录 索引文件。该目录的内容是:
tony@blessing:~/workspace/myXformProject$ ls schemas
SchemaList.txt XForms-Schema.xsd xhtml-lat1.ent xml-events.xsd
SchemaList.txt~ xhtml1-strict.dtd xhtml-special.ent
这些架构已从w3c下载。但是这些架构会 不编译产生错误wfc_PEs_In_Internal_Subset。我会 期望这些完善的w3c模式可以用xmerl编译。
我做错了什么?
托尼华莱士6> B.
[{"http://www.w3.org/1999/xhtml",
"schemas/xhtml1-strict.dtd"},
{"http://www.w3.org/2001/xml-events",
"schemas/xml-events.xsd"},
{"http://www.w3.org/2002/xforms",
"schemas/XForms-Schema.xsd"}]
9> {ok,S1} = xmerl_xsd:process_schemas(B).
3450- fatal: {error,{wfc_PEs_In_Internal_Subset}}
** exception exit: {fatal,{{error,{wfc_PEs_In_Internal_Subset}},
{file,"schemas/xhtml1-strict.dtd"},
{line,628},
{col,89}}}
in function xmerl_scan:fatal/2
in call from xmerl_scan:scan_entity/2
in call from xmerl_scan:scan_markup_decl/2
in call from xmerl_scan:scan_ext_subset/2
in call from xmerl_scan:scan_document/2
in call from xmerl_scan:file/2
in call from xmerl_xsd:process_schemas/2
3450引用xmerl_scan中的代码行:
scan_entity_value("%" ++ _T,S=#xmerl_scanner{environment=prolog},_,_,_,_,_) ->
?fatal({error,{wfc_PEs_In_Internal_Subset}},S);
该错误似乎与xhtml1-strict.dtd的第628行相关联 89列似乎可疑,因为628行并不宽:
621 <!--
622 param is used to supply a named property value.
623 In XML it would seem natural to follow RDF and support an
624 abbreviated syntax where the param elements are replaced
625 by attribute value pairs on the object start tag.
626 -->
627 <!ELEMENT param EMPTY>
628 <!ATTLIST param
629 id ID #IMPLIED
630 name CDATA #IMPLIED
631 value CDATA #IMPLIED
632 valuetype (data|ref|object) "data"
633 type %ContentType; #IMPLIED
634 >
635
如果你有这么远的帖子,非常感谢! 贝
答案 0 :(得分:0)
您似乎在一组架构文档上调用xmerl_xsd:process_schemas,其中一些是XSD架构文档,其中一个根本不是XSD架构文档,而是一个文档类型定义文件(xhtml1-strict.dtd) 。 process_schemas函数需要XSD架构文档,它们是XML文档实例,但DTD文件不是XML文档实例。如果要执行您想要执行的操作,则需要获取XHTML的XSD架构,而不是DTD。不幸的是,XHTML WG的XSD架构文档并不是世界上最容易使用的东西;祝你好运。
如果您想使用XForms,您可能会发现使用XSLTForms或Orbeon或BetterForms或EMC Formula比使backplane.js工作更容易。