着信 xml ドキュメントを解析するための xml スキーマを設計しました。受信場所は 2 つのフィードから xml ドキュメントを取得します。そのうちの 1 つがドキュメント内のノードのスペルを間違えています。「Rookie」ではなく「Roookie」です。既存の xsd でこのドキュメントを解析する方法はありますか?
4 に答える
2
次の単純な XSL スタイルシートのように、間違った XML ファイルを前処理する可能性があります。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>
<xsl:template match="Roookie">
<Rookie>
<xsl:apply-templates select="@*|node()" />
</Rookie>
</xsl:template>
<xsl:template match="@*|node()" name="defaultRule">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
于 2008-11-19T21:31:09.170 に答える
0
ドキュメント内の要素を置き換えるか、新しいドキュメント形式で動作するように xsd を変更する必要があります。
于 2008-11-19T21:21:03.260 に答える
0
Rookie という名前の 1 つのノードではなく、2 つのノード (Rookie または Roookie) の間の選択を受け入れるようにスキーマを変更するだけです。どちらのノードも同じタイプです。もちろん、Roo(o)kie に複雑なコンテンツがある場合は、2 つの要素の構造全体が重複しないように、このコンテンツに対して複合型を宣言する必要があります。
于 2008-11-19T21:30:18.250 に答える
0
ここでの唯一の答えは、悪いメッセージを修正することです。xsd はコントラクトであり、システムをサブミットする際に遵守する必要があります。サブミットするシステムをこのように制御できない場合は、新しい名前で 2 つ目のスキーマを作成し、スペル ミスに対応できるようにすることをお勧めします。メッセージのミスごとにコントラクト/xsd を変更し始めると、複雑さが増し、保守性が低下します。
于 2008-12-05T03:38:51.420 に答える