草庐IT

联合体与枚举

全部标签

c# - XmlSerializer 没有序列化两个枚举属性

我们目前正在尝试使用XmlSerializer.Serialize将一组对象序列化为xml我们已经使用以下stub测试了XmlSerializerprivatestaticvoidTestMethod(){ChartContentConfigConfig=newChartContentConfig();Config.DefinitionId="6790e2ca-be93-48dd-94e7-f8ec0f6e5fd4";Config.Sorts=null;Config.DataFields=newDataField[1];Config.DataFields[0]=newDataField

XML::Compile 以使用枚举和选择从模式生成示例 XML

根据一些现有教程,我创建了以下perl脚本以从xsd生成XML。脚本:#!/opt/perl/bin/perl-wusewarnings;usestrict;useXML::Compile::Schema;useXML::LibXML::Reader;useXML::Compile::Utilqw/pack_type/;my$in_qfn=$ARGV[0];my$out_qfn=$ARGV[1];open(OUT,">$out_qfn")||die"Unabletocreateoutputfile:$out_qfn\n";#Generatethehashofxmlmy$schema=X

c# - 如何在 .NET 中解析联合和列表类型的值?

我有一个XML架构,其中包含使用的数据类型和.这是一个摘录:这是一个示例XML片段:42hello123.25.6二上元素是联合,较低的元素是一个列表。我的问题是,如何解析和.NET中的元素?如何检查union元素中的值具有哪种数据类型?如何提取列表元素中的元素并将它们转换为C#列表?System.XML是否内置支持这种解析,还是需要我自己编写解析代码? 最佳答案 希望得到更好的答案,但是,我觉得你需要自己写。如果你想要一个通用的解析器来处理xs:list和xs:union的所有可能实例,你会遇到一个更困难的问题,但对于你的特定模式

xml - 如何在 xml 中做一个枚举

我有许多请求类型-实际上是枚举。但在我的代码中,这些请求类型是一个枚举:enumRequestType{RequestRegister,RequestUnregister,etc};我目前对wsdl文件的尝试如下。但是它使用的是字符串类型。在我的服务器中,我需要从xml中提取一个枚举/整数。在字符串上进行查找似乎是糟糕的设计。那么我如何形成我的wsdl文件,以便请求类型是枚举?WSDLFileforCubaCTIservices补充说明。我“被迫”使用xml,因为客户端只能发送xml消息(对此无法控制)。但是我组成了客户端使用的xml。我控制/写入的服务器是用C++编写的,我正在使用l

c# - 在 C# 中使用 Value 属性从 Xml 中反序列化枚举

我正在尝试用C#为图书导入工具编写一个ONIX。我首先使用Xsd2Code创建类,并获得了一个包含所有属性的巨大文件,经过一些调整后反序列化时不会产生任何错误。我试图一次性将整个元素反序列化为内存中的一个大对象,然后用它做一些事情(比如将它保存到数据库)。Xsd2Code生成类的方式,除了有很多属性之外,有点奇怪,至少对我来说是这样。下面是一个应该是Product对象的属性的类:publicpartialclassNotificationType{publicNotificationTypeRefnamerefname{get;set;}publicNotificationTypeSh

xml - 通过 Delphi XML 数据绑定(bind)向导使用 XML 枚举

我有一个使用枚举的XML模式,但是当我在Delphi中查看生成的XML对象时,枚举限制已被删除。有没有办法让Delphi生成枚举并将其构建到对象中?XSD片段:我希望在Delphi中看到的是一个接受枚举的字段,然后在生成XML时将其转换为相应的字符串,但该字段只是一个普通字符串。 最佳答案 您可以做的是使用与名称相同的字符串常量创建您自己的枚举类型,并将单元TypInfo与函数GetEnumValue和GetEnumString一起使用。这允许您像在其他Delphi代码中一样在名称前加上几个小写字母:Value:=TMyEnum(G

xml - Delphi 由于枚举名称中的连字符导致错误导入 WSDL,我该怎么办?

我正在使用Delphi并使用来自另一家公司的wsdl文件来设置我的代理类以使用来自他们的Web服务的数据。wsdl文件包含以下内容:Enumeratesallowabledeparturestatuses(DEPARTED,NOT-DEPARTED)当我生成代理类时,我得到以下信息:departStatus=(DEPARTED,[System.Xml.Serialization.XmlEnumAttribute('NOT-DEPARTED')]NOTDEPARTED);除非我删除以[System.xml...开头的行,否则它不会编译,并且它不会将“NOT-DEPARTED”识别为dep

xml - XSD选择和枚举有什么区别?

XSD选择和枚举有什么区别? 最佳答案 它们完全不相关。选择表示在元素的内容模型中,您可以使用多个子元素之一:例如,在文档中,您可以选择章节或附录作为子元素。枚举用于限制文本或属性节点中可以出现的值,例如规定颜色属性的值必须是红色、绿色或蓝色。 关于xml-XSD选择和枚举有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5358132/

简单类型字符串的 XML 模式不区分大小写枚举

我需要在我的XML架构(.xsd)文件中使用不区分大小写的字符串枚举类型。通过执行以下操作,我可以不区分大小写。唯一的问题是我没有得到枚举值。使用VisualStudio编写我的XML时,我不会得到很好的智能感知。以下将给我枚举,但区分大小写。这会给我枚举,但如果我收到“On”、“ON”或“oN”的值,它将无法通过验证。我想要枚举“开”、“关”并允许输入不区分大小写的版本。 最佳答案 如果您既要保持不区分大小写的验证,又要在VisualStudio2010中获得Intellisense,您可以使用联合:这是可行的,因为它利用了这样一

.net - 枚举序列化 Json 与 XML

我的项目中有以下枚举publicenumCameraAccessMethod{Manual=0,Panasonic=1,Axis=2,AirCam=3}我有一个对象,根据不同的情况被序列化为json或XML,并且对象的属性之一是CameraAccessMethod类型。我遇到的问题是,当此属性序列化为XML时,它将给出枚举值的字符串表示形式(Manual、Panasonic、Axis、Aircam),但在JSON中它被序列化为数字值(0,1,2,3)。我怎样才能避免这种不一致?我也想要JSON序列化中的字符串。 最佳答案 从WebA