草庐IT

拓扑序列

全部标签

c# - 如何通过 .NET 验证 xml 代码文件? + 如果我使用 XML 序列化,我该怎么做?

我希望用户能够将数据导出为XML文件。当然,我希望他们以后能够导入同一个XML文件,但是他们总是可以更改它或者它可以是不同的XML文件。所以我想验证XML文件以检查它是否是我期望的格式。所以我想我需要类似模式的东西来检查它是否必须通过代码。所以如果我期望我不希望文件中出现我期望的格式以外的其他格式。另外,我将如何验证字段?就像说我要求标签之间必须有一些文本。如果为空,则文件无效。那我该怎么做呢?编辑我决定使用XML序列化,所以我知道如果格式错误,它将通过异常处理并忽略不起作用的内容。但是我不确定我应该通过它和C#来验证每条记录,还是应该尝试制作一个xml模式来完成它。如果我想通过带有x

c# - 带有 XML 序列化的不需要的属性名称

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:RemovingWrapperElementsfromXML-SerializedArray这很难解释,所以我提供了一个问题示例。我有一个包含子类列表的父类。当我序列化父类时,我得到了我的子类,但它们位于具有公共(public)属性名称的元素下。额外的水平不是我需要的。我尝试将XmlIgnore属性添加到属性名称,但这抑制了属性名称及其包含的发票集合的所有内容。父类:[XmlRoot("header")]publicclassLynx:INotifyPropertyChanged{#region/*--Cla

xml - WCF:序列化?流媒体?

我需要了解WCF在发送消息时是如何工作的。WCF在发送之前是否序列化所有内容?我的另一个问题是使用Streaming有什么好处?更大的消息是否更好,比如说1Mb到2Mb?我可以发送一个序列化的复杂对象,然后能够在流式传输后轻松地在另一端反序列化它吗(复杂对象我的意思是一个可以动态的图像列表),或者我是否需要使用XML之类的东西来格式化它?这里的主要问题是,我不知道在使用WFC流式处理时,我是否需要在发送之前先序列化消息...难道WFC不应该在发送之前序列化所有内容吗?我知道的很笼统,但我需要弄清楚这些概念。干杯 最佳答案 是的,除了

.net - XML 序列化丢失命名空间

我有如下CRM实体XML消息:....SomethingHere...然后我将它反序列化为一个对象并序列化回xml我明白了SomethingHere...我松开了xmlns:b的定义。知道为什么吗? 最佳答案 四十二是正确的:属性值不携带任何默认语义,因此xml处理器无法识别命名空间的使用。如果你想在你的i:type属性中引用一些b数据,你可以使用一个映射元素来关联c:value带有(假设的)b:value,即:..................您可以在其中将_:ref声明为相应xml模式中的IDREF属性。您可能需要调整1:n-

XML Schema 具有不同类型的相同元素在不同序列中的选择导致类型错误

我继承了2004年最后一次更新的一些XML模式。从那时起它一直在工作,但软件更新导致了一些问题。XML不再在XMLspy中验证。无论如何,问题似乎是当前通过定义多个具有不同名称的不同simpleType来定义元素的方法是不正确的。我不明白如何解决这个问题。使用XMLspy2004打开文件,xml验证正常。用latesXMLspy打开文件我得到以下错误:Element'Element'isnotconsistentwithelement'Element'.Details:cos-element-consistent.2:Bothtypedefinitions('type2'and'typ

XMLUnit 比较 Xml 忽略序列

我需要比较2个XML,我正在使用我的自定义差异监听器忽略子节点序列和属性列表序列:if(difference.getId()==DifferenceConstants.CHILD_NODELIST_SEQUENCE_ID||difference.getId()==DifferenceConstants.ATTR_SEQUENCE_ID)returnDifferenceListener.RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL;我的代码适用于:和但是我需要它来考虑这些XML也是相同的:ABC.....DEF.....和DEF.....ABC....

C#将不同类型的xml数组反序列化为多个数组

我有以下xml:有没有办法将其反序列化为C#对象,以便AccessibleApplications和EligibleApplications成为两个独立的数组?我尝试了以下操作但出现异常,因为“应用程序”被多次使用。[XmlArray("Applications")][XmlArrayItem("AccessibleApplication")]publicListAccessibleApplications{get;set;}[XmlArray("Applications")][XmlArrayItem("EligibleApplication")]publicListEligible

c# - 当元素可能是许多可能元素之一时,将 XML 元素反序列化为对象

在本地框架中,消息通过发布/订阅以XML格式传输,我需要能够使用大量消息,但是,所有消息都以简单文本形式接收,并且必须反序列化为Xsd工具创建的对象。消息本身都是从基本MessageType元素/对象派生的,但是如果我基于它进行反序列化:XmlSerializerserializer=newXmlSerializer(typeof(MessageType));XmlReaderreader=XmlReader.Create(newStringReader(rawMessage));MessageTypemessage=(MessageType)serializer.Deserializ

javascript - 从浏览器 DOM 序列化 XML 不会创建 XML 声明

好的,我们有一个通过XML与网络服务通信的网络应用程序。到目前为止,我们只是通过将字符串组合在一起(并通过XMLHttpRequest/POST发送)来组装这些XML。我想将其重构为使用构建和序列化浏览器内置的XMLDOM树的工具,即document.implementation&XMLSerializer().serializeToString(doc)(参见Mozilla文档here和here)。到目前为止它一直运行良好,除了生成的字符串不包含XML声明。那么,它应该如何运作?有什么好的建议和/或阅读吗?哦,是的,我找到了this描述问题的mozillabug和hacky解决方法(

c# xml 序列化分组子节点中的元素

我想将一些类字段序列化为一个组(一个子节点元素)。例如:[XmlRoot("person",Namespace="",IsNullable=false)]publicclassPerson{[XmlElement("male")]publicboolMale{get;set;}[XmlElement("street")]publicstringStreet{get;set;}[XmlElement("city")]publicstringCity{get;set;}}这将创建以下XML:trueSomestreetCity但我想分组(例如将街道和城市分组到一个子元素中),而不需要创建一