我想用以下格式的XML: <configuration><!– Only one configuration node –> <logging>…</logging><!– Only one logging node –> <credentials>…</credentials><!– One or more credentials nodes –> <credentials>…</credentials> </configuration> 我想创build一个具有[Serializable]属性的类Configuration 。 要序列化凭证节点,我有以下几点: [XmlArray("configuration")] [XmlArrayItem("credentials", typeof(CredentialsSection))] public List<CredentialsSection> Credentials { get; set; } 但是,当我将它序列化为XML时,XML格式如下: <configuration> <logging>…</logging> <configuration><!– Don't want credentials nodes nested in a second configuration node –> <credentials>…</credentials> <credentials>…</credentials> </configuration> </configuration> 如果我删除[XmlArray("configuration")]行,我得到以下内容: […]
我正在优化自定义对象 – > XML序列化实用程序,这一切都已经完成并且工作,这不是问题。 它通过加载一个文件到一个XmlDocument对象,然后recursion遍历所有的子节点。 我想,也许使用XmlReader而不是有XmlDocument加载/parsing整个事情会更快,所以我也实现了该版本。 algorithm是完全一样的,我使用包装类来抽象处理XmlNode与XmlReader 。 例如, GetChildren方法的yield返回一个子XmlNode或一个SubTree XmlReader 。 所以我写了一个testing驱动来testing这两个版本,并且使用了一个非平凡的数据集(一个大约有1,350个元素的900kb XML文件)。 但是,使用JetBrains的dotTRACE,我看到XmlReader版本实际上比XmlDocument版本更慢! 当我遍历子节点时,似乎有一些重要的处理涉及XmlReader读取调用。 所以我就这么说: XmlDocument和XmlReader的优点/缺点是什么,在什么情况下你应该使用? 我的猜测是有一个文件大小的阈值, XmlReader在性能上变得更经济,以及更less的内存密集。 不过,这个门槛似乎高于1MB。 我每次调用ReadSubTree来处理子节点: public override IEnumerable<IXmlSourceProvider> GetChildren () { XmlReader xr = myXmlSource.ReadSubtree (); // skip past the current element xr.Read (); while (xr.Read ()) { if (xr.NodeType != XmlNodeType.Element) continue; yield return new XmlReaderXmlSourceProvider (xr); […]
有没有办法让我序列化.NET中的对象没有XML命名空间自动序列化呢? 看来,默认情况下,.NET认为应该包含XSI和XSD命名空间,但我不希望它们在那里。
我正在研究一个生成程序集的项目。 我只注意到正在生成一个额外的程序集* .XmlSerializers.dll。 为什么这个文件是自动生成的,它用于什么?
如何从XSD文件生成XML文件?
我正在用C#编写一个GIS客户端工具,以便从服务器中检索基于GML的XML模式(下面的示例)中的“function”。 提取物限于100,000个function。 我很抱歉,最大的extract.xml可能会达到150兆字节左右,所以明显的DOMparsing器已经出来了我一直在试图决定之间的XmlSerializer和XSD.EXE生成的绑定 – 或 – XmlReader和手工制作的对象图。 或者也许还有一个我还没有考虑过的更好的方法? 像XLINQ,还是???? 请任何人指导我? 特别是关于任何给定方法的记忆效率。 如果没有,我将不得不“原型”这两个解决scheme并configuration他们并排。 在.NET中我是一个未知的大虾。 任何指导将不胜感激。 感谢您。 基思。 XML示例 – 高达100,000个,每个function高达234,600个坐标。 <feature featId="27168306" fType="vegetation" fTypeId="1129" fClass="vegetation" gType="Polygon" ID="0" cLockNr="51598" metadataId="51599" mdFileId="NRM/TIS/VEGETATION/9543_22_v3" dataScale="25000"> <MultiGeometry> <geometryMember> <Polygon> <outerBoundaryIs> <LinearRing> <coordinates>153.505004,-27.42196 153.505044,-27.422015 153.503992 …. 172 coordinates omitted to save space … 153.505004,-27.42196</coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </geometryMember> </MultiGeometry> </feature>