2


他のいくつかのスキーマで使用される共通のスキーマで定義された要素があります。共通の要素をインポートするスキーマで上記の要素を参照するにはどうすればよいですか?
詳細を説明しましょう...一般的なスキーマは次のとおりです。

<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: グローバル要素をスキーマから別のスキーマにインポートできますか?

4

1 に答える 1

3

要素をインポートするには、インポートで十分です。次に、それをどうしたいかによって異なります。複合型のコンテンツ モデルの一部にしたい場合は、それを参照する要素パーティクルを含め<element ref="mon:heartBeatresp"/>ますsubstitutionGroup="mon:heartBeatresp"

于 2013-06-17T14:58:40.130 に答える