Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml FLT Can';t验证XSD布尔值_Xml_Xsd_Boolean_Freemarker - Fatal编程技术网

Xml FLT Can';t验证XSD布尔值

Xml FLT Can';t验证XSD布尔值,xml,xsd,boolean,freemarker,Xml,Xsd,Boolean,Freemarker,我正在为我的工作做一个网络项目,我正试图通过点击模板一侧的复选框将谷歌调查添加到页面中。使用此方法的原因是将脚本添加到所有模板中,但能够在特定页面上关闭/打开脚本。如果选中,则显示调查。如果不是,则不显示调查 我的XSD架构布尔代码是: <xs:element name="ShowSurvey" type="xs:boolean"/> 这是要在发布者的模板端呈现的复选框 我的FTL代码是: <#if !Page.ShowSurvey> <script typ

我正在为我的工作做一个网络项目,我正试图通过点击模板一侧的复选框将谷歌调查添加到页面中。使用此方法的原因是将脚本添加到所有模板中,但能够在特定页面上关闭/打开脚本。如果选中,则显示调查。如果不是,则不显示调查

我的XSD架构布尔代码是:

<xs:element name="ShowSurvey" type="xs:boolean"/>

这是要在发布者的模板端呈现的复选框

我的FTL代码是:

<#if !Page.ShowSurvey> 
<script type="text/javascript" async="" defer=""  src="//survey.g.doubleclick.net/async_survey?site=#############"></script>
</#if>

当我重新生成模板时,会收到以下错误消息:

使用TemplateName.ftl重新生成格式副本时出错:freemarker.core.NonBooleanException:freemarker_模板第13行第23列出现错误,此处表达式页需要布尔(真/假)表达式。ShowSurvey的计算结果不为真/假它是freemarker.ext.dom.NodeListModel的实例

我做错了什么?有人能帮我照一下吗


提前感谢。

FreeMarker的XML包装器不支持XSD,因此这里有一个类似于
“true”
的字符串,而不是布尔值。因此,您必须自己将其转换为布尔值。类似于
的内容,其中
xsdBool
是:

<#function xsdBool s>
    <#if s == 'true' || s == '1'><#return true></#if>
    <#if s == 'false' || s == '0'><#return false></#if>
    <#stop "Malformed XSD boolean: " + s>
</#function>