2
XmlSerializer serializer = new XmlSerializer(typeof(IxComment));
System.IO.StringWriter aStream = new System.IO.StringWriter();
serializer.Serialize(aStream,Comments);
commentsString = aStream.ToString();

ここで、commentsString には次の要素が含まれています。

<IxComment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

以下に示すように、xsi 属性と xsd 属性を交換して要素を取得する可能性はありますか

<IxComment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

これにより、他の問題が発生しますか?

編集:なぜこれを行う必要があるのですか?

既存のアプリケーションを 1.1 から 3.0 に移行していますが、コードに if ループがあります。

int iStartTagIndex = strXMLString.IndexOf("<IxComment xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");

IxComment のインデックスをチェックします。ここでシリアライザのo/pと条件はxsdとxsiの位置が異なります。だから私は必要に応じてo/pを提供するようにシリアライザーに指示できるかどうかを知りたいと思っています。

これは既存のアプリケーションだったので、ここで別の質問があります。シリアライザーの O/P はバージョンによって異なりますか?

4

1 に答える 1

2

XML を理解するコードにとって重要ではないものの順序に影響を与える方法がないことを願っています。名前空間宣言の順序に問題があるコードは、ひどく壊れており、修正する必要があります。


あなたの編集を見た後、私はさらに断固として、壊れたコードを修正してください。コードで XML の文字列処理を実行してはいけません。単純にコードを修正する必要があります。XML 標準を修正しようとするのではなく、名前空間の宣言の順序は関係ありません。

于 2010-04-05T11:09:16.320 に答える