.xsd文件是否可以通过编码类型验证.xml文件

时间:2009-09-03 13:53:17

标签: xml xsd

.xsd文件是否也可以通过编码类型来验证.xml文件?

我们有一个系统无法读取xml文件,如下所示:

<?xml version="1.0" encoding="utf-16" standalone="yes"?>

所以我想在将它们提供给该系统之前验证它们并检查它们是否以

开头
<?xml version="1.0" encoding="utf-8" standalone="yes"?>

2 个答案:

答案 0 :(得分:1)

不,XSD不能这样做。它是关于验证XML文档的内容,如果它们只是具有不同的编码,则两个XML文档是相同的。

为什么不简单地使用正确的编码发送数据?

提示:当你看到来自.NET程序的UTF-16时,通常是因为你已经将XML写入字符串,可能是通过StringWriter。由于.NET中的字符串是Unicode,因此会自动生成UTF-16编码。我不相信可以改变,但如果你不把它输出到一个字符串,那么你没有问题。

答案 1 :(得分:0)

在.NET中,您可以从XML文档顶部的XmlDeclaration实例检查XML声明。

XmlTextReader reader = new XmlTextReader(@"C:\books.xml");

while (reader.Read())
{
    XmlNodeType type = reader.NodeType; 
    switch (type)
    {
        case XmlNodeType.XmlDeclaration:
             //do something with reader
             break;
    }
}