Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#21

AW: Zahlenwerte in XML (Decimalseparator)

  Alt 17. Okt 2014, 12:27
Hab mir deinen Kreuzpfosten angeschaut: Das XML ist aber valide.
Code:
<rootNode>
  <invalidContent>3,14159265358979</invalidContent>
</rootNode>
Nur die *Intention* ist ja eine andere, nämlich die: Du hast ein Schema und willst die Delphi XML-Datenbindung verwenden.
Code:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rootNode">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:float" name="invalidContent"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Delphi-Quellcode:
Der Delphi-Code dazu:
IXMLRootNode = interface(IXMLNode)
    ['{323E65B5-3A1C-4937-8413-91430DC19316}']
    { Property Accessors }
    function Get_InvalidContent: Single;
    procedure Set_InvalidContent(Value: Single)
    { Methods & Properties }
    property InvalidContent: Single read Get_InvalidContent write Set_InvalidContent;
  end;

{ Forward Decls }

  TXMLRootNode = class;

{ TXMLRootNode }

  TXMLRootNode = class(TXMLNode, IXMLRootNode)
  protected
    { IXMLRootNode }
    function Get_InvalidContent: Single;
    procedure Set_InvalidContent(Value: Single);
  end;
Und wenn Du nun ausführst:
Delphi-Quellcode:
var
  node : IXMLRootNode;

begin
  node := NewrootNode;
  node.InvalidContent := Pi;
  memo1.Lines.text := node.XML;
end;
Hast Du -et voilá- ein XML, was nicht gegen das Schema validiert werden kann. Und *DAS* ist ein Bug.

Das geht natürlich auch mit Datumse. Is ja klar.
  Mit Zitat antworten Zitat