XMLスキーマを作成しようとしています。属性値をネイティブ形式のGUIDとして格納できるようにしています。私はそれを文字列として設定することができますが、実際のGUIDとして保存するといいでしょう。XMLスキーマにGUIDシンプルタイプを追加する方法は?
どのようにすればいいですか?
XMLスキーマを作成しようとしています。属性値をネイティブ形式のGUIDとして格納できるようにしています。私はそれを文字列として設定することができますが、実際のGUIDとして保存するといいでしょう。XMLスキーマにGUIDシンプルタイプを追加する方法は?
どのようにすればいいですか?
XMLには基本的に文字列のみが含まれていますが、XSDでは特定の他のプリミティブ型も定義されています。しかし、GUIDはそれらの中にはありません。
GUIDタイプに対して独自のスキーマを定義できます。たくさんの人がこれをやってきました。 Microsoft OneNoteチームがこれを行ったのは、http://msdn.microsoft.com/en-us/library/aa203890(office.11).aspxです。
次のような正規表現を使用して文字列を制限することによって、独自のカスタム単純型「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>
それを試してみましたが、制約は失敗しました。 in file:ファイルが見つかったときにエラーメッセージが表示されます。 –
奇妙な...私たちはこれを生産に持ち、すべてがうまくいきます...いつ、どのように使用していますか?エラーはどこで発生しますか? –
私はそれを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>
私はそれについても記事を見ました。 SimpleTypeをあなたの要素、属性xmlにリンクするにはどうすればいいですか –