这不是一个特定的编程问题,而是要求知道做某事的正确方法。
“The Something”:我的代码执行用户提供的将 XML 作为标准输出的 powershell 脚本。该输出应该遵循我们作为软件设置例程的一部分发布和交付的模式。我们支持输出中的版本,因此客户的 XML 将在其 XML 的根目录中针对版本 2 输出具有类似的内容:
<my_report version="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mycompany.com/permanent/config-2.0.xsd config-2.0.xsd">
客户输出的 XML 可能不是有效的 XML(因此在我们使用它之前需要进行验证)。
我的目标是获取版本属性的值并确保它与提供的正确 .xsd 文件名匹配,然后使用该 .xsd 文件来验证输出 XML。
由于输出 XML 可能无效,因此我不能依赖 XElement.Parse() 之类的东西将 XML 放入变量中以对其进行操作。所以,我觉得我唯一的办法是解析第一个元素(my_report)并使用字符串操作来进行确定。
注意:运行代码的机器不保证可以访问互联网。
我的基本问题:这是理智的想法吗?我是否愿意做这样的事情?如果思维不健全,有什么好的选择?
平台是 Windows Server 2008 R2,C# 4.0 控制台应用程序类型。