1

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 スキーマ定義」ページを読みましたが、答えが見つかりませんでした。どんな助けでも大歓迎です。

4

0 に答える 0