lug-dd@schlittermann.de writes:
Welche Zeichen in einer XML-Datei stehen duerfen und wie diese interpretiert werden, haengt vom Encoding ab, das ist standardmaessig UTF-8. Die Entity ä ist nur bei entsprechender DTD/Schema moeglich, z.B. bei HTML. XML selbst kennt nur sehr wenige Entities.
MESSAGE: Datatype error: Type:InvalidDatatypeValueException, Message:Value 'Gesch�skunde' is not in enumeration .
Hmm, hier wurde der Umlaut zweimal in UTF8 umkodiert...
Vielleicht vergessen in der XML-Processing Instruction das Encoding anzugeben, oder ein falsches angegeben ? (oder gar vergessen ?)
Ich habe zunächst gar nix angegeben.Spuckte schön utf8 aus. Da hatte ich aber noch keine Umlaute drinn (zufällig) Neuerdings wird utf16 ausgespuckt, was mir eher zufällig auffiel. Es wird nirgendwo ein encoding gesetzt, scheint alles elektrisch zu gehen ... Nach ein wenig forschen habe ich gemerkt, dass generell alle Umlaute dieses Problem haben, hat nix mit Enumeration zu tun....
Jens: Wir brauchen die relevanten Teile deiner XML-Datei und deines Schemas um das genaueres zu sagen.
Was genau?
Stückel Schema:
<?xml version="1.0" encoding="UTF-16"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Personenliste"> .... <xs:element name="Kundenklasse"> xs:annotation xs:documentationPrivat- oder Geschäftskunde</xs:documentation> </xs:annotation> xs:simpleType <xs:restriction base="xs:string"> <xs:enumeration value="Privatkunde"/> <xs:enumeration value="Geschäftskunde"/> </xs:restriction> </xs:simpleType> </xs:element>
.....
Stückel XML:
<?xml version="1.0" encoding="UTF-16" standalone="no" ?> <Personenliste xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://intern.cyberport.de/intranet/specials/schemas/person.xsd">
.....
<Kundenklasse>Geschäftskunde</Kundenklasse> ...
in XMLSPY: <Kundenklasse>Gesch?skunde</Kundenklasse>
Muss ich jedes Stückerll Text vom einfügen in das XML-File irgendwie UTF-encoden? Ich habs schon mal versucht, aber dabei kam wohl das Doppelencoduíng zustande ...
Mit freundlichen Grüßen
Jens Puruckherr