3

C#でXDocumentを使用してXMLドキュメントを作成しています。質問があります。

<Simple xmlns = "Example"></Simple>

に相当

<Example:Simple></Example:Simple>

C#でXNamespaceとXElementを使用して2番目のソリューションを取得しようとしましたが、最初に取得しただけです。

4

4 に答える 4

6

いいえ。

最初の例では、Example 名前空間にSimple要素を作成します (通常、名前空間は URI として表現されることに注意してください)。

2 番目の例では、(属性によって定義されているように) Example プレフィックスに関連付けられている名前空間にSimple要素を作成します。xmlns

これらは同等です:

<xml xmlns="http://example.com/myNameSpace">
    <Simple></Simple>
</xml>

<xml xmlns="http://example.com/myNameSpace" xmlns:Example="http://example.com/myNameSpace">
    <Example:Simple></Example:Simple>
</xml>
于 2012-08-16T12:51:32.417 に答える
1

いいえ、しかしそれは以下と同等です:

<Example:Simple xmlns:Example="Example"></Example:Simple>

相対 URI を名前空間名として使用することはお勧めできません。この XML は、元の場所に応じて異なる名前空間を持つようになったからです。したがって、常に完全な URI を指定してください。たとえば、XML が から受信されたhttp://example.net/somePlace/someXML場合、相対 URIExampleは に展開されるhttp://example.net/somePlace/Exampleため、完全に使用してください。

<Example:Simple xmlns:Example="http://example.net/somePlace/Example"></Example:Simple>

また

<Simple xmlns="http://example.net/somePlace/Example"></Simple>

それ以外の場合、誰かが保存した場合、C:\Documents再度開くと次のようになります。

<Simple xmlns="file:///C|/Documents/Example"></Simple>

つまり、Simpleここの意味は、最初にダウンロードしたときとはまったく異なります。

于 2012-08-16T13:02:24.360 に答える
1

最初の例では、独自の名前空間が前に付いていない要素/属性に適用されるデフォルトの名前空間を定義しました。

2 番目の例では、名前空間を定義していません。

于 2012-08-16T12:52:10.527 に答える
1

いいえ、xml 名前空間では要素名でサポートされていない文字を使用できるため、要素タグ名にそのような名前空間をプレフィックスとして付けることはできません。

次のように、名前空間プレフィックスを追加します。

<alias:Simple xmlns:alias = "Example"></alias:Simple>
于 2012-08-16T12:52:21.983 に答える