为什么我得到"错误:'.',十六进制值0x00,是一个无效的字符。第 2 行,位置 1",来自 XSD 实用程序



我希望能够扫描 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的工作人员,显示明确的错误消息可以为我们节省大量工作时间......不是吗?

最新更新