我看到了这个XML:
<amount type="downpayment"></amount>
我想知道为什么不这样做:
<amount>
<type>downpayment</type>
</amount>
1.是否有任何特殊原因或含义为什么它用方法1代替2?
2.如何将这两个XML转换为POJO?会有什么区别。
3. XML中任何不能使用的保留字?
答案 0 :(得分:1)
在很多情况下,可以澄清具有用于对象属性的属性,以及包含对象的子元素。
一个例子是“文档样式”XML应用程序,例如XHTML。在:
<p class="warning"><a href="/helpAccountExpire">Your account has expired</a></p>
然后p
和a
之间的关系是前者代表后者所属的文档元素,而class
提供有关p
性质的更多信息}和href
关于a
。
这在非“文档样式”应用程序中也有意义:
<list presorted="true">
<item>4</item><item>7</item><item>23</item>
</list>
这里list
包含数字4,7和23,而presorted
属性告诉使用列表已经排序(因此我们可以放弃自己排序的费用,如果我们需要它排序的话)。
在很多情况下,人们可以合理地使用它们,而个人偏好通常会对XML应用程序设计产生影响。当然,任何无法使用简单字符串或可能超出可能值的内容(在您的问题示例中,amount
在第一个字符串中只能有0个或type
个案件,但在第二个案件中可以有任何数字。
如何将其翻译成POJO取决于翻译的内容,您必须指定。
对于保留字,元素或属性的名称可以从匹配的任何字符开始:
":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
,名称的其余部分可以是与之匹配的任何字符,也可以是:
"-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
请注意,这包含一些Unicode非字符,虽然没有被XML标准禁止,但由于XML是基于Unicode构建的,因此不能使用XML,因此它们在实践中也被禁止。
还有一个规则,即任何大小写(xml
,XML
等)中以xMl
开头的名称都保留用于核心XML技术,如XML本身,XML命名空间等。 。(xml:space
,xml:lang
,xmlns
和xmlns:
前缀是使用此示例的示例。)
(这是在XML1.0中,XML1.1略有不同的规则,澄清了一些奇怪的情况,但大多数情况下只需要真正需要这些澄清规则的人)。
使用XML命名空间的应用程序进一步限制了上述内容,因为名称中只能有一个冒号(:
),在这种情况下,左侧的部分是标识所使用的命名空间的名称空间前缀(或默认命名空间(如果不存在)和右边的位(或者如果在默认的namespaec中的整个内容)是本地名称。通过暗示,这禁止用冒号开始一个名字。
即使你没有使用命名空间,最好遵循这些限制,这样你就可以与那些技术兼容。
答案 1 :(得分:0)
第一个是XML Attribute
,第二个是XML Child Element
。以下是一些谈论他们的比较的链接: