我希望能够扫描SSRS报告定义(.rdl)文件并以编程方式对其进行更改。我正在关注Microsoft教程(尽管有些过时,但找不到最新版本)。
该教程在这里:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/aa337455(v%3dsql.90)
我已经从Microsoft网站ReportDefinition.xsd下载了XML架构文件,现在正在按照步骤4到步骤6进行操作,即打开Visual Studio命令提示符并运行实用程序XSD来生成ReportDefinition.vb文件,该文件包含RDL模式的类。
但是,当我按照说明运行命令时:
xsd /c /l:VB /n:SampleRDLSchema ReportDefinition.xsd
...我只是收到错误消息:
Error: '.', hexadecimal value 0x00, is an invalid character. Line 2, position 1.
这是文件的前几行;我看不到错误消息所指的字符0x00:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All rights reserved. -->
<xsd:schema targetNamespace="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"
elementFormDefault="qualified">
<xsd:annotation>
<xsd:documentation>
The following schema describes the structure of the
Report Definition Language (RDL) for Microsoft SQL Server 2008 R2.
鉴于这是Microsoft编写的一组说明,说明如何使用针对Microsoft提供的文件运行的Microsoft实用工具,我对为什么其中应该有一个错误感到困惑。
有人可以帮忙吗?谢谢。
答案 0 :(得分:0)
第2行开头报告的问题可能表明这是一个编码问题。第一行的属性function(req, res, next) {
console.log(req)
});
表示文件应解释为具有UTF-8编码。因此,在第一行之后,xsd实用程序将尝试将文件读取为UTF-8。如果文件实际上使用了不同的编码,则将产生与您遇到的错误类似的错误。
要对此进行测试,请从第一行中删除encoding="utf-8"
,然后再次运行命令。
答案 1 :(得分:0)
对我来说,这是另一个问题。我的文件包含以下内容:
<xs:include schemaLocation="XMLFILE.xsd"/>
因此错误的含义是“找不到XMLFILE.xsd”。确保所有文件中都包含所有相关的xml文件。右键单击Visual Studio中的文件并执行“查看代码(F7)”,就可以知道它。如果包含的内容用红色下划线标记,则表示文件丢失或“ XMLFile.xsd”中的内容丢失。
请Microsoft的工作人员显示清晰的错误消息可以为我们节省大量的工作时间...