XML,这是什么:null或空元素?
关于我的另一个问题:
XML deserialize null elements?
我从第三方服务器获取了像这样的元素进行API测试: <Taxable /> <DefaultPurchasePrice /> 我只是意识到,现在我感到困惑的是,这样的元素是否表示空对象或空. 谈论对象,它们是一样的,null对象通常意味着空对象引用吗?但是尝试将XML元素映射到数据字段/值时,它们可能不同,即空字符串为空字符串,但对于十进制价格或布尔值,它们是未定义的,等于空,但不会为空,除非它们被定义为空. 再次,我的XmlSerializer的问题是不会处理传递一个这样的空的元素.我可以在我的代码中轻松解决这个问题.或者我应该问人们提供的XML有一个定义良好的XML?因为似乎这样一个空的XML元素是未定义的:它在这里,但是可以是null还是空对XML元素本身无关紧要?但是对于那个元素,我的代码需要弄清楚如何处理,除非我将我所有的C#类数据字段设置为字符串类型.否则,如果我的代码试图将一个空的或空的XML元素直接映射到某个数据域,那么它将会失败. 我必须提出这个问题,因为我遇到的XML有很多这些元素 编辑: 在我提出的例子中,这两个元素显然应该是空的而不是空的元素. XML不是真的有一个null的概念,但是这些元素可以被省略(如果它们是空的,不要将它们放入XML中),或者使用更好的表示,如@svick.或者在其他情况下,当它们有意义时,应该使用空的元素.但不适用于Decimal或Boolean.
它是空的它在语义上是相同的: <Taxable></Taxable> <DefaultPurchasePrice></DefaultPurchasePrice> 存在于XML本身中的唯一“空”概念是一个缺失的元素.您不能使用XML的语义来指定元素并说它是空的.您必须具有某种模式(显式模式,如DTD,XSD或Schematron,或隐式/逻辑模式)来执行此操作. 这不限制解释XML的应用程序,或官方的XML相关技术.例如,XSD具有xsi:nil =“true”属性.即使您可以将这些模式属性中的某些应用于XML,但这些属性不是“纯”XML;它们是由XSD架构提供的补充. 这是XSD可以在基础XML结构之上自由构建自己的语义,并添加一个不存在的显式零的情况.这种灵活性被认为是XML的优点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 抽了几天用Flex写了个上传小工具,支持批量上传,支持配置
- postgresql – 从postgres批量删除行的最有效方法
- c# – 上传Excel文件并提取数据 – asp.net mvc 3
- Reactor 模式的 JAVA NIO 多线程服务器
- 使用React Native运行Firebase 3.0时出错
- c# – 如何使用基于单元格值的颜色设置Asp.net GridView单元
- objective-c – tableview – 无法识别的选择器didSelectRo
- VB循环读写TXT文件
- Swift错误:无法将’Int32’类型的值转换为预期的参数类型’
- Displaying XML in a Swing JTree