Jasper报告Gantt XSD与支持的功能不匹配

时间:2017-02-23 08:31:39

标签: java xml hyperlink xsd jasper-reports

我正在尝试在PDF文档中使用超链接。我想创建从甘特图表栏到表格中的行的超链接。 我使用Japser Report Designer 6.3.1创建我的报告。我添加了指向Gantt Data表格行的超链接。

但是,如果我编译报告,我会得到一个模式验证错误

  

net.sf.jasperreports.engine.JRException:org.xml.sax.SAXParseException; lineNumber:265; columnNumber:68; cvc-complex-type.2.4.a:从元素'itemHyperlink'开始发现无效内容。其中一个是{{http://jasperreports.sourceforge.net/jasperreports“:percentExpression}'。

这是我的甘特数据集:

<ganttDataset>
<dataset>
    <datasetRun subDataset="dgGanttEvents" uuid="cc974cc8-20f5-4a4c-88cd-9c5e0c46bada">
        <dataSourceExpression><![CDATA[$P{dgGanttSeries}]]></dataSourceExpression>
    </datasetRun>
</dataset>
<ganttSeries>
    <seriesExpression><![CDATA[$F{series}]]></seriesExpression>
    <taskExpression><![CDATA[$F{task}]]></taskExpression>
    <subtaskExpression><![CDATA[$F{subtask}]]></subtaskExpression>
    <startDateExpression><![CDATA[$F{start}]]></startDateExpression>
    <endDateExpression><![CDATA[$F{end}]]></endDateExpression>
    <itemHyperlink hyperlinkType="LocalAnchor">
        <hyperlinkAnchorExpression><![CDATA[$F{time}-$F{series}]]></hyperlinkAnchorExpression>
    </itemHyperlink>
</ganttSeries>

第265行位于 itemHyperlink 标记。

我很困惑,我可以在编辑器中使用该字段但似乎不支持它们。此外,我调查了来源 JRDesignGanttSeries.java @ Github我也可以发现

String PROPERTY_ITEM_HYPERLINK = "itemHyperlink";
似乎得到了支持

我试图根据

的文档关闭验证
net.sf.jasperreports.compiler.xml.validation=false

取自:JasperCompileManager Java Doc

但后来我

    net.sf.jasperreports.engine.JRRuntimeException: Error creating SAX parser.
....
Caused by: org.xml.sax.SAXNotSupportedException: Property 'http://java.sun.com/xml/jaxp/properties/schemaLanguage' must be set before setting property 'http://java.sun.com/xml/jaxp/properties/schemaSource'. 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.setProperty(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl.setProperty(Unknown Source)
  • 任何想法为什么XSD与看似的功能不同 支持的?
  • 任何想法如何从甘特图表栏创建超链接?
  • 如何在日历报告中关闭XSD验证,以免它受到影响 吗?

0 个答案:

没有答案