测试xs:Delphi中的选择

时间:2016-12-29 22:35:52

标签: xml delphi xsd

我正在使用包含xs:choice的XML文档。文档中只能存在其中一个选项。 如何在运行时测试选择? 这是使用XMLSpy创建的文档模式的片段。

<xs:element name="Mount">
                                        <xs:complexType>
                                            <xs:choice>
                                                <xs:element name="AzEl">
                                                    <xs:complexType>
                                                        <xs:attribute name="MaximumAzimuth" type="xs:float" use="required"/>
                                                        <xs:attribute name="MinimumAzimuth" type="xs:float" use="required"/>
                                                        <xs:attribute name="MaximumElevation" type="xs:float" use="required"/>
                                                        <xs:attribute name="MinimumElevation" type="xs:float" use="required"/>
                                                    </xs:complexType>
                                                </xs:element>
                                                <xs:element name="DriftScan">
                                                    <xs:complexType>
                                                        <xs:attribute name="Azimuth" type="xs:float" use="required"/>
                                                        <xs:attribute name="Elevation" type="xs:float" use="required"/>
                                                    </xs:complexType>
                                                </xs:element>
                                                <xs:element name="BirdBath">
                                                    <xs:complexType>
                                                        <xs:attribute name="Test" type="xs:string"/>
                                                    </xs:complexType>
                                                </xs:element>
                                            </xs:choice>
                                            <xs:attribute name="Manufacture"/>
                                            <xs:attribute name="Model"/>
                                        </xs:complexType>
                                    </xs:element>
                                    <

我试过了:

if ChildNodes['AzEl'].NodeValue <> null then

if Mount.AzEl <> nil then

但是这些不区分文档中的元素和不存在的元素。 我正在使用Delphi Seattle,Windows 10,XMLDocument和Binding向导。

1 个答案:

答案 0 :(得分:1)

似乎有效的构造是:

     if ChildNodes[0].LocalName = 'BirdBath' then

感谢Ken White的回答。