2011-02-03 8 views
0

私はXHTML文書を記述するxsdを持っています。しかし、私が使用しているアプリケーションでは、その時点でマークアップ内のasp.netコントロールを選択している可能性があります。したがって、検証は失敗します。XMLスキーマファイルにasp.netコントロールタグを追加する

制御例は次のようになります。

<smart:Address runat="server" /> 

私はXSDファイルに新しい要素を追加したいが、私は指定したとき:

<xs:element name="smart:Address"> 

私は、要素名として検証エラーを取得してはなりませんそこにコロンがある。

どのようにして、選択したサーバーコントロールを許可するようにスキーマファイルを拡張することができますか? xhtml1-transistional.xsd

+0

xml名前空間がありますか? –

答えて

2

あなたは「スマート」XML名前空間であることを逃している:フルXSDに沿って物事を助けるために

更新 はで入手できます。あなたは "スマート" 名前空間を宣言する必要があります:つまり

<xs:schema xmlns:smart="http://someurl" ...... 

はこちら詳細はこちら:

+0

いいえ、既存のスキーマ要素にXML名前空間(xmlns:smart)を宣言する必要があります:) –

+0

2番目のnamesapceを追加しようとしましたが、新しいxs:要素のref属性を追加すると、許可されていません。 –

+0

あなたのXSDはどうなっているのですか?視覚的な編集者には最終的な言葉がありません。 XSDで検証して、期待どおりに動作するかどうかを確認してください。 –

0

あなたがのための要素宣言を配置する必要がありますスマートネームスペースは別のスキーマドキュメントにあり、そのtargetNamespace属性はネームスペースを識別します。 xs:elementやxs:simpleTypeのような構造体のname属性は、常に非修飾(ローカル)の名前で、targetNamespaceによって暗黙的に修飾されています(elementFormDefault = "qualified"を使用してローカル要素の宣言に対してもtrueを保証します)。あるスキーマ文書の要素宣言を別のスキーマ文書のコンポーネントから参照する場合は、(a)依存関係を示すxs:import宣言が必要であり、(b)参照に修飾名を使用し、 prefix:localという形式で、prefixはxml::prefix = "uri"宣言を使用して対応するネームスペースにバインドされます。通常、xs:schema要素に宣言されます。

関連する問題