Xml スキーマ宣言について、私が理解していない根本的なことがあります。.xsd ファイルに次の宣言があります。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="tile">
<xs:restriction base="xs:string">
<xs:pattern value="[a-z][0-9]"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="move">
<xs:complexType>
<xs:sequence>
<xs:element name="T" type="tile" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
たとえば<move><T>a0</T><T>v5</T></move>
、xsd ファイルによると有効な XML 要素である必要があります。(実際の宣言は簡略化したので、動きが意味をなさないかもしれません)
背景: C# 4.0 でプロジェクトを開発しています。この xsd ファイルをプロジェクト ソースとして使用します。XElement をどこかから受け取ると、まず上記の xsd に従って有効かどうかを確認します。C# コードは問題なく動作します。
これが私の質問です(うまくいけば、単一の質問で、3回尋ねられます):
1) 宣言をドメインに置きたい。としましょうaliferhat.com
。それともしたいですか?なぜ私はそれをしたいのですか?どうやってやるの?後で別の場所からその宣言を使用するにはどうすればよいですか?
2) 同様の xsd ファイルが多数あります。それらのほとんどは「タイル」定義を使用するため、「タイル」の部分を別のファイルに置き、そのファイルを他の xsd ファイルから参照したいと考えています。どうやってやるの?システムは定義を探す場所をどのように知るのでしょうか?
3) これは、新しい XSD ファイルをプロジェクトに追加したときにビジュアル スタジオが生成するものです。
<xs:schema id="temp"
targetNamespace="http://tempuri.org/temp.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/temp.xsd"
xmlns:mstns="http://tempuri.org/temp.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
</xs:schema>
xmlns:xs
および属性は何をしtargetNamespace
ますか? xs:element
これらの URI の 1 つで本当に定義されていますか? C# コンパイラは、定義のためにこれらの URI を本当に検索しますか?
質問は 1 つだけでよかったと思います。W3 学校の「XML スキーマ定義」ページを読みましたが、答えが見つかりませんでした。どんな助けでも大歓迎です。