我有一个我想阅读的XML文件(使用xml atrributes)。结构不会改变,但内容会改变。
示例XML:http://www.yr.no/place/Norway/Oslo/Oslo/Oslo/forecast.xml (必须手动将URL复制并粘贴到地址栏中,否则您将获得404.)
我无法使用此代码(并使用XSD.EXE)从中制作XSD:
XmlTextReader myXmlTextReader = new XmlTextReader("forecast.xml");
DataSet myDataSet = new DataSet();
myDataSet.ReadXml(myXmlTextReader);
myDataSet.WriteXmlSchema("forecast.xsd");
结果:
Column name 'name' is defined for different mapping types.
现在,想象一下,我在这方面很懒,并且不想花费我的整个晚上手动将XML映射到我的对象。我希望为我生成托管代码对象,以便我可以轻松读取数据。
我有什么选择?
...如果有人知道,XSD转换错误消息是什么意思?
答案 0 :(得分:2)
如果您要处理XML属性,那么为什么不将xml加载到XmlDocument中。然后,您可以访问各种节点和属性。
答案 1 :(得分:2)
是的,使用Linq。我没有任何示例代码,但这个链接应该让你开始。
答案 2 :(得分:1)
要回答关于Xsd.exe错误的最后一点,它存在多个位置元素的问题。如果您保存xml并将第一个 location 元素重命名为 baselocation ,那么它将转换为okay。
然后,您可以手动修改xsd或生成的类来处理此问题。