Jacek
K.
Software Developer,
Telecetera Ltd.
Temat: problem z odczytem pliku XML
mam problem z odczytem danych z XML (konkretnie z XML Schema)xmla czytam takim kodem:
...
procedure TParametrMinMax.ReadFromXMLSchema(aMainNode: XmlNode;
aParamName: string; aNameSpace: XmlNamespaceManager);
var
nd: XmlNode;
begin
nd := nil;
//wchodze do sequence
nd := aMainNode.SelectSingleNode('//xs:sequence',aNameSpace);
//wczytuje element
nd := nd.SelectSingleNode('//xs:element[@name=''' + aParamName + ''']',aNameSpace);
//wchodze do simple type / restriction
nd := nd.SelectSingleNode('//xs:simpleType',aNameSpace).SelectSingleNode('//xs:restriction',aNameSpace);
//wczytuje wartosci
Min := convert.todouble(nd.SelectSingleNode('//xs:minInclusive',aNameSpace).Attributes.GetNamedItem('value').InnerText);
Max := convert.ToDouble(nd.SelectSingleNode('//xs:maxInclusive',aNameSpace).Attributes.GetNamedItem('value').InnerText);
end;
...
xml wyglada tak:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="common.xsd"/>
<xs:complexType name="KONDENSATOR_elem">
<xs:annotation>
<xs:documentation xml:lang="pl">Opis baterii kondensatorow.</xs:documentation>
</xs:annotation>
<xs:sequence>
<!-- napiecie znamionowe -->
<xs:element name="nap_znam_kV" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Napiecie znamionowe</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="750"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- moc baterii -->
<xs:element name="moc_kvar" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Moc baterii</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="999999"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
problem polega na tym, ze obojetnie czy czytam element dotyczacy "nap_znam_kV" czy "moc_kvar", w odpowiedzi dostaje dane (dla minInclusive oraz maxInclusive) z pierwszego elementu?
czy problem moze byc zwiazany z przestrzeniami nazw?