我希望能够扫描 SSRS 报表定义 (.rdl) 文件并以编程方式更改它们。 我正在遵循一个Microsoft教程(虽然有点过时,但找不到最新版本)。
教程在这里: https://learn.microsoft.com/en-us/previous-versions/sql/sql-server-2005/aa337455(v%3dsql.90)
我已经从Microsoft网站下载了XML架构文件 - ReportDefinition.xsd - 现在正在按照步骤4到6进行操作,即打开Visual Studio命令提示符并运行实用程序XSD以生成包含RDL架构类的ReportDefinition.vb文件。
但是,当我按照说明运行命令时:
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实用程序,我对为什么其中应该有错误感到有点困惑。
谁能帮忙? 谢谢。
第 2 行开头报告的问题可能表明这是一个编码问题。第一行encoding="utf-8"
的属性指示应将文件解释为具有 UTF-8 编码。因此,在第一行之后,xsd 使用率将尝试将文件读取为 UTF-8。如果文件实际上使用不同的编码,则会产生与您遇到的错误类似的错误。
要对此进行测试,请从第一行中删除encoding="utf-8"
并再次运行该命令。
对我来说,这是另一个问题。我的文件包含一些内容,例如:
<xs:include schemaLocation="XMLFILE.xsd"/>
因此,错误含义是"它找不到XMLFILE.xsd"。确保所有文件中包含所有相关的 xml 文件。当您在Visual Studio中右键单击该文件并执行"查看代码(F7)"时,您就知道了。如果包含以红色下划线表示,则文件丢失或"XMLFile.xsd"中的某些内容丢失。
请Microsoft的工作人员,显示明确的错误消息可以为我们节省大量工作时间......不是吗?