Jacek K.

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?