What use is a man walking on water if you don't follow in his footsteps?
Heb geen ervaring met SOAP, maar bij XML kan de encoding vrij makkelijk op UTF-8 worden gezet
Ga tot de luiaard, gij mier! Zie haar wegen en wordt wijs.
Je geeft in je soap fault al mee welke encoding het is. Dus je mag het teruggeven in wat handig is in jouw usecase.
Als de ontvangende partij voor gewone responses ebcdic krijgt is het imho logisch dat de soapfaults dat dan ook zijn.
Als de ontvangende partij voor gewone responses ebcdic krijgt is het imho logisch dat de soapfaults dat dan ook zijn.
Klaar voor een nieuwe uitdaging.
Ben je ook echt een client tegengekomen die hier op stuk gaat? Anders heeft het toch geen zin om de spec te gaan spellen, laat die client maar wijzen waar dat dan zou staan. Er staat dat alles van SOAP in XML is, en XML in UTF-8 is zonder meer gewoon geldig.
EBCDIC is trouwens helemaal niet logisch
EBCDIC is trouwens helemaal niet logisch
geen enkel stuk tekst (ook geen xml) is geldig zonder charset.matthijsln schreef op maandag 14 oktober 2013 @ 17:42:Er staat dat alles van SOAP in XML is, en XML in UTF-8 is zonder meer gewoon geldig.
Als ik deze webpagina (die keurig valide is) als utf-16 gaan inlezen gaat het toch mis.
Kortom: geef gewoon netjes charset mee.
zie (ook als je het al weet, want het is een leuk verhaal):
http://www.joelonsoftware.com/articles/Unicode.html
[ Voor 12% gewijzigd door BasieP op 14-10-2013 18:20 ]
This message was sent on 100% recyclable electrons.
XML is geen gewone tekst. Omdat je a priori weet dat het XML is, weet je dat de eerste regel begint met <?xml version="1.0" en mogelijk daarna encoding=. Je XML parser moet die charset gebruiken, en geen enkele andere,
Dat kan betekenen dat je parser begint met het inlezen als UTF-16, er vrij snel achter komt dat het eerste karakter geen "<" is, en opnieuw begint. Dat is een implementatie detail, zolang het resultaat uiteindelijk maar klopt.
Dat kan betekenen dat je parser begint met het inlezen als UTF-16, er vrij snel achter komt dat het eerste karakter geen "<" is, en opnieuw begint. Dat is een implementatie detail, zolang het resultaat uiteindelijk maar klopt.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Sterker nog, bij gebruik van UTF-16 moet een XML entity verplicht beginnen met een byte-order-mark. Zie de tweede paragraaf van: http://www.w3.org/TR/REC-xml/#charencoding
Zie ook appendix F "Autodetection of Character Encodings", waar ook EBCDIC wordt genoemd: http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info
Ik zie trouwens in paragraaf 4.3.3 expliciet staan "Each external parsed entity in an XML document may use a different encoding for its characters", dus kan je wel stellen dat je SOAP fault gewoon in een andere encoding dan het binnengekomen SOAP message teruggestuurd mag worden.
@BasieP met XML in UTF-8 bedoelde ik wel een XML entity met de encoding genoemd in de XML encoding declaration, of in een externe HTTP/MIME declaratie. Met "zonder meer" doelde ik op eventuele extra eisen die buiten de XML/SOAP specs zijn genoemd. Sommige specs die XML of SOAP gebruiken vereisen bijvoorbeeld dat alles in UTF-8 geencode moet zijn.
Zie ook appendix F "Autodetection of Character Encodings", waar ook EBCDIC wordt genoemd: http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info
Ik zie trouwens in paragraaf 4.3.3 expliciet staan "Each external parsed entity in an XML document may use a different encoding for its characters", dus kan je wel stellen dat je SOAP fault gewoon in een andere encoding dan het binnengekomen SOAP message teruggestuurd mag worden.
@BasieP met XML in UTF-8 bedoelde ik wel een XML entity met de encoding genoemd in de XML encoding declaration, of in een externe HTTP/MIME declaratie. Met "zonder meer" doelde ik op eventuele extra eisen die buiten de XML/SOAP specs zijn genoemd. Sommige specs die XML of SOAP gebruiken vereisen bijvoorbeeld dat alles in UTF-8 geencode moet zijn.
mensen even voor de goede orde: ik zeg nergens dat xml 'gewoon text' is, ik zeg dat je een charset moet meegeven.
Dit is precies wat je zou moeten doen in xml en dus in soap.
same goes for html etc.
ik reageerde puur en alleen om duidelijk te maken dat als je een stelling poneerd als:
ow als ik mijn xml utf8 encode is het goed. Dat is zeker niet het geval.
idd zit in xml (en nog meer in soap) dat je encodings kunt opgeven, en daar moet je dus gebruik van maken.
vraag van de TS is kort door de bocht:
"welke encoding moet ik toepassen?"
en het enige goede antwoord is dan:
"maakt geen fuck uit, zolang je het maar expliciet vermeld"
Dit is precies wat je zou moeten doen in xml en dus in soap.
same goes for html etc.
ik reageerde puur en alleen om duidelijk te maken dat als je een stelling poneerd als:
dat veel mensen dan lezen:Er staat dat alles van SOAP in XML is, en XML in UTF-8 is zonder meer gewoon geldig.
ow als ik mijn xml utf8 encode is het goed. Dat is zeker niet het geval.
idd zit in xml (en nog meer in soap) dat je encodings kunt opgeven, en daar moet je dus gebruik van maken.
vraag van de TS is kort door de bocht:
"welke encoding moet ik toepassen?"
en het enige goede antwoord is dan:
"maakt geen fuck uit, zolang je het maar expliciet vermeld"
This message was sent on 100% recyclable electrons.
Ik denk niet dat veel mensen dat in mijn uitspraak lezen. Er staat alleen dat XML in UTF-8 geencode geldige XML is. Wat jij er van maakt staat er niet.BasieP schreef op maandag 14 oktober 2013 @ 20:45:
[...]
dat veel mensen dan lezen:
ow als ik mijn xml utf8 encode is het goed. Dat is zeker niet het geval.
Dat was de vraag van de TS helemaal niet.vraag van de TS is kort door de bocht:
"welke encoding moet ik toepassen?"
en het enige goede antwoord is dan:
"maakt geen fuck uit, zolang je het maar expliciet vermeld"
Daarnaast kan het best wat uitmaken welke je encoding gebruikt hoor, UTF-16 kost veel meer bandbreedte bijvoorbeeld en EBCDIC hoeft niet verplicht door alle XML parsers ondersteund te worden.
Zolang je het maar expliciet declareert dus.
Imo wel een reden om UTF-8 te kiezen ipv EBCDIC: Laatstgenoemde lijkt enigszins gedateerd/minder courant. Als je dus in het algemeen een leuke API wil opzetten wil je niet met zo'n gekke
incomplete charset blijven zitten. Prima als oude systemen met oude crap blijven werken, zolang mensen die in t heden zitten maar alles met UTF-8 kunnen doen.
Imo wel een reden om UTF-8 te kiezen ipv EBCDIC: Laatstgenoemde lijkt enigszins gedateerd/minder courant. Als je dus in het algemeen een leuke API wil opzetten wil je niet met zo'n gekke
{signature}
Beste Matthijsmatthijsln schreef op maandag 14 oktober 2013 @ 21:05:
[...]
Ik denk niet dat veel mensen dat in mijn uitspraak lezen. Er staat alleen dat XML in UTF-8 geencode geldige XML is. Wat jij er van maakt staat er niet.
Ik quote je niet om je af te zeiken. ik kwoot je om dingen duidelijker te maken.
Je hebt de essentie van mijn post niet door, en door er dan op te reageren wordt het niet veel helderder.
Je zegt dat jij denkt dat niet veel mensen jou uitspraak zo lezen. Nou ik deed dat wel. Ik gok dat ik niet uniek ben en dat er wel anderen zijn die het wel zo lezen.
Nogmaals, ik zeg niet 'matthijs je hebt ongelijk en dus ga ik je in de zeik zetten', ik zei
Ik viel je dus niet aan.geen enkel stuk tekst (ook geen xml) is geldig zonder charset.
Als ik deze webpagina (die keurig valide is) als utf-16 gaan inlezen gaat het toch mis.
Kortom: geef gewoon netjes charset mee.
Ik zei niet 'de topic starter zei ...'[...]
Dat was de vraag van de TS helemaal niet.
maar 'de topic starter zei kort door de bocht...'
ik lees daar toch echt 'mag ik UTF-8 gebruiken'Dus, stel de afzender gebruikt EBCDIC op de transportlaag en/of in het XML bericht: is dan gedefinieerd of de SOAP fault ook als EBCDIC teruggegeven moet worden, of MAG ook UTF-8 gebruikt worden?
Waarop mijn antwoord dus (nogmaals) is:
tuurlijk, maar geef aan wat het is. want tekst zonder encoding is waardeloos.
Volgens mij weet iedereen in dit topic dat utf-16 meer bits gebruikt dan utf-8. Dus door opeens te beginnen over bandbreedte is beetje uit de context.Daarnaast kan het best wat uitmaken welke je encoding gebruikt hoor, UTF-16 kost veel meer bandbreedte bijvoorbeeld en EBCDIC hoeft niet verplicht door alle XML parsers ondersteund te worden.
En EBCDIC is gewoon een encoding, en als jij de encoding meegeeft doe je het goed of dat nou UTF-8 of EBCDIC of UTF-16 is, dat maakt niet uit.
Natuurlijk is het beter als je even kijkt naar je parser, maar de vraag gaat hier niet over parsers, maar over wanneer je soap bericht valid is (in dit geval een soap fault).
This message was sent on 100% recyclable electrons.
De vraag was of dezelfde encoding gebruikt moest worden als het ontvangen message. Het antwoord is dus nee.BasieP schreef op maandag 14 oktober 2013 @ 22:01:
[...]
ik lees daar toch echt 'mag ik UTF-8 gebruiken'
Waarop mijn antwoord dus (nogmaals) is:
tuurlijk, maar geef aan wat het is. want tekst zonder encoding is waardeloos.
Niemand heeft het erover om een antwoord te sturen zonder vermelding van encoding.
Jij zegt dat welke encoding je gebruikt geen 'fuck' uitmaakt. De context is dus dat dat wel uitmaakt. Naast het al genoemde niet verplicht ondersteunen van EBCDIC door XML parsers (een essentieel onderdeel van het begrijpen van een SOAP fault) is er ook nog het detail dat EBCDIC maar een extreem beperkt aantal Unicode codepoints ondersteunt. Nogal een verschil dus.Volgens mij weet iedereen in dit topic dat utf-16 meer bits gebruikt dan utf-8. Dus door opeens te beginnen over bandbreedte is beetje uit de context.
En EBCDIC is gewoon een encoding, en als jij de encoding meegeeft doe je het goed of dat nou UTF-8 of EBCDIC of UTF-16 is, dat maakt niet uit.
Natuurlijk is het beter als je even kijkt naar je parser, maar de vraag gaat hier niet over parsers, maar over wanneer je soap bericht valid is (in dit geval een soap fault).
Jongens, lief zijn.
Dank, dat had ik nodig! Overigens...Ik zie trouwens in paragraaf 4.3.3 expliciet staan "Each external parsed entity in an XML document may use a different encoding for its characters", dus kan je wel stellen dat je SOAP fault gewoon in een andere encoding dan het binnengekomen SOAP message teruggestuurd mag worden.
Zit momenteel in een organisatie waar the blame game op het scherpst van de snede wordt gespeeld, dus enige backing qua standaarden is wel fijn.Ben je ook echt een client tegengekomen die hier op stuk gaat?
What use is a man walking on water if you don't follow in his footsteps?
Pagina: 1