私はこのXMLを見ました:
<amount type="downpayment"></amount>
私はなぜこのようにしないのだろうかと思っています:
<amount>
<type>downpayment</type>
</amount>
1.2ではなくアプローチ1で書かれている理由や意味はありますか?
2.これらの 2 つの XML はどのように POJO に変換されますか? 違いは何でしょう。
3.使用してはいけない XML の予約語はありますか?
私はこのXMLを見ました:
<amount type="downpayment"></amount>
私はなぜこのようにしないのだろうかと思っています:
<amount>
<type>downpayment</type>
</amount>
1.2ではなくアプローチ1で書かれている理由や意味はありますか?
2.これらの 2 つの XML はどのように POJO に変換されますか? 違いは何でしょう。
3.使用してはいけない XML の予約語はありますか?
多くの場合、オブジェクトのプロパティに属性を使用し、含まれるオブジェクトの子要素を使用すると明確になります。
1 つの例は、XHTML などの「ドキュメント スタイル」の XML アプリケーションです。の:
<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
ゼロまたは 1 つしかtype
持てませんが、2 番目のケースでは任意の数を持つことができます) .
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 名前空間を使用するアプリケーションは、名前にコロン ( ) を1 つしか使用できないという点で上記をさらに制限します。) で、右側のビット (デフォルトのネームスペースの場合は全体) がローカル名です。暗黙的に、これは名前をコロンで始めることを禁止します。
名前空間を使用していない場合でも、これらの制限に従うことをお勧めします。これにより、名前空間を使用するテクノロジと互換性が保たれます。
1つ目はXML Attribute
、2つ目はXML Child Element
です。以下は、それらの比較について説明しているいくつかのリンクです。