В файле XSD, как я могу ограничить значения элемента, содержащегося в значениях, определенных другим элементом? Другими словами, чтобы объявить определенное значение, он должен быть уже создан другим элементом.XSD - ограничивать значения элемента, содержащегося в значениях, определенных другим элементом
Например:
У меня есть список датчиков,
<SensorDefinitionList>
<SensorDefinition>
<Name>ROLK8900</Name>
<DisplayName>TRM1</DisplayName>
<Presence>YES</Presence>
<SensorId>40</SensorId>
<Coordinates>0,0</Coordinates>
</SensorDefinition>
<SensorDefinition>
<Name>JBLK7200</Name>
<DisplayName>JBLK</DisplayName>
<Presence>YES</Presence>
<SensorId>35</SensorId>
<Coordinates>0,0</Coordinates>
</SensorDefinition>
...
</SensorDefinitionList>
и элемент, содержащий их распределение, например:
<SensorDistributionList>
<SensorDistribution>
<SensorDistributionId>0</SensorDistributionId>
<Name>System</Name>
<ListOfSensor>SDF</ListOfSensor>
</SensorDistribution>
<SensorDistribution>
<SensorDistributionId>3</SensorDistributionId>
<Name>MLAT</Name>
<ListOfSensor>MLAT</ListOfSensor>
</SensorDistribution>
...
</SensorDistributionList>
В XSD, я хочу, чтобы обеспечить что имя SensorDistribution, которое я описываю, является именем датчика, ранее определенным в SensorDefinition. Как я могу написать свой XSD таким образом?
...
<xs:element name="SensorDistributionList">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="SensorDistribution">
<xs:complexType>
<xs:sequence>
<xs:element name="SensorDistributionId" type="xs:integer" />
<xs:element name="Name" type="xs:string" />
<xs:element name="ListOfSensor" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
...