2009-06-21 11 views

答えて

4

XMLには基本的に文字列のみが含まれていますが、XSDでは特定の他のプリミティブ型も定義されています。しかし、GUIDはそれらの中にはありません。

GUIDタイプに対して独自のスキーマを定義できます。たくさんの人がこれをやってきました。 Microsoft OneNoteチームがこれを行ったのは、http://msdn.microsoft.com/en-us/library/aa203890(office.11).aspxです。

+0

私はそれについても記事を見ました。 SimpleTypeをあなたの要素、属性xmlにリンクするにはどうすればいいですか

13

次のような正規表現を使用して文字列を制限することによって、独自のカスタム単純型「GUID」を定義することができます。

<xs:simpleType name="GUID"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
    </xs:restriction> 
</xs:simpleType> 
+0

それを試してみましたが、制約は失敗しました。 in file:ファイルが見つかったときにエラーメッセージが表示されます。 –

+1

奇妙な...私たちはこれを生産に持ち、すべてがうまくいきます...いつ、どのように使用していますか?エラーはどこで発生しますか? –

1

私はそれをsussedました。場合によっては、ドキュメントを読むのに役立ちます。これがうまくいく方法です。

<xs:simpleType name="GUID"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
     </xs:restriction> 
    </xs:simpleType> 


    <xs:element name="ruleident"> 
    <xs:complexType> 
     <xs:attribute name="ruleGuid" > 
     <xs:simpleType> 
     <xs:restriction base ="GUID"> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:attribute > 
    </xs:complexType > 
    </xs:element> 
関連する問題