他のいくつかのスキーマで使用される共通のスキーマで定義された要素があります。共通の要素をインポートするスキーマで上記の要素を参照するにはどうすればよいですか?
詳細を説明しましょう...一般的なスキーマは次のとおりです。
<xs:schema
xmlns="http://schemas.com/ns/2013/06/research/monitoring"
targetNamespace="http://schemas.com/ns/2013/06/research/monitoring"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
>
<xs:complexType name="SQLSettings">
<xs:sequence>
<xs:element name="MasterSqlServerName" type="xs:string"/>
<xs:element name="MasterSqlServerNameRO" type="xs:string"/>
<xs:element name="MasterDatabaseName" type="xs:string"/>
<xs:element name="UserID" type="xs:string"/>
<xs:element name="Password" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="heartbeatResp">
<xs:sequence>
<xs:element name="SQLSettings" type="SQLSettings"/>
<xs:element name="ComputerName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="heartbeatResp" type="heartbeatResp"/>
</xs:schema>
...そして、これは共通のものをインポートするスキーマになります:
<xs:schema xmlns="http://schemas.com/ns/2005/10/userinfoupdate"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://schemas.com/ns/2005/10/userinfoupdate" elementFormDefault="qualified"
xmlns:mon="http://schemas.com/ns/2013/06/research/monitoring"
>
<xs:import namespace="http://schemas.com/ns/2013/06/research/monitoring" schemaLocation="common/schemas/research_monitoring.xsd" />
... declare here the heartbeatResp element of the common schema ...
</xs:schema>
これを行う方法はありますか?を作成しようとしましたが<xs:element ref="mon:heartbeatResp"/>
、グローバル要素宣言に参照を含めることができないことがわかりました。
要素宣言を特定のスキーマに移動して、共通のスキーマで complexType のみを参照することもでき<xs:element name="heartbeatResp" type="mon:heartbeatResp"/>
ますが、これは他の問題につながり、回避策になります...
本当に知りたいことis: グローバル要素をスキーマから別のスキーマにインポートできますか?