CARVIEW |
Select Language
HTTP/2 200
date: Fri, 25 Jul 2025 07:13:25 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"c07c52633d70aae03d95dc3569ff473d"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=e8s6ZcF5PcuzTreeWWBPFDC2jMi4XcHWNNUBWTfY0BULBMMdplxRS7pAZW6%2FDXM44zI0%2B2M81P1%2FIphrn7oPaK0rwjMDJDPlOiqD44wGSCqX6IsrVceyrgkqd7ie7d4NexFsCr0lEhyTp5Az%2BMYOl353pwqVgAGb8n%2B4ELlrGjU1DWyA8SGX0mjJatA1BEaURSGTBqVP%2FQEsdymC0mZy8Qw88plCa2tjblPuA%2FKMHmuT19ZAiSe3MDX1qsBRAVYJXMtQPtaBIrc1EyV1eO20Xw%3D%3D--5fcn1MUuLr%2FFxke9--WsrouxZa3RdrbPGVFVmB1A%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1608215326.1753427604; Path=/; Domain=github.com; Expires=Sat, 25 Jul 2026 07:13:24 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 25 Jul 2026 07:13:24 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: BAB8:2026F8:42786F:51B07A:68832E94
Release 0.4.0 · CoreOffice/XMLCoder · GitHub
MaxDesiatov
Max Desiatov
Loading
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 116
0.4.0
Compare
34c178b
This commit was signed with the committer’s verified signature.
The key has expired.
This is a release with plenty of new features that allow you to parse many more XML variations than previously. Compatibility with Xcode 10.2 and Swift 5.0 is also improved. A huge thank you to @JoeMatt and @regexident for their contributions, to @hodovani for maintaining the project, and to @Inukinator, @qmoya, @Ma-He, @khoogheem and @thecb4 for reporting issues during development!
Notable changes
- Ordered encoding: this was one of the most requested changes and it's finally here! 🎉 Now both keyed and unkeyed elements are encoded in the exactly same order that was used in original containers. This is applicable to both compiler-generated encoding implementations (just reorder properties or cases in your
CodingKeys
enum if you have it) and manually implementedfunc encode(to: Encoder)
. - Stripping namespace prefix: now if your coding key string values contain an XML namespace prefix (e.g. prefix
h
in<h:td>Apples</h:td>
), you can setshouldProcessNamespaces
property totrue
on yourXMLDecoder
instance for the prefix to be stripped before decoding keys in yourDecodable
types. - Previously it was possible to customize encoding with
NodeEncodingStrategy
, but no such type existed for decoding. A correspondingNodeDecodingStrategy
type was added withnodeDecodingStrategy
property onXMLDecoder
. - Thanks to the previous change, XMLCoder now provides two helper protocols that allow you to easily customize whether nodes are encoded and decoded as attributes or elements for conforming types:
DynamicNodeEncoding
andDynamicNodeDecoding
. - Previously if you needed to decode or encode an XML element with both attributes and values, this was impossible to do with XMLCoder. Now with the addition of coding key value intrinsic, this is as easy as adding one coding key with a specific string raw value (
"value"
or empty string""
if you already have an XML attribute named"value"
).
Closed issues
- Crash: Range invalid bounds in
XMLStackParser.swift
#83 - Document DynamicNodeEncoding and attributed intrinsic #80
- Fix nested attributed intrinsic #78
nodeEncodingStrategy
#49- XmlEncoder: ordering of elements #17
- Can’t reach an XML value #12
Merged pull requests
- Make value intrinsic smarter #89 (@MaxDesiatov)
- Refactor XMLCoderElement.flatten, add tests #88 (@MaxDesiatov)
- Add separate lint stage to .travis.yml #87 (@MaxDesiatov)
- Add multiple Xcode versions to Travis build matrix #86 (@MaxDesiatov)
- Add DynamicNodeDecoding protocol #85 (@MaxDesiatov)
- Improve tests and fix error context handling #84 (MaxDesiatov)
- Ordered encoding #82 (@MaxDesiatov)
- Add
shouldProcessNamespaces
decoder property #81 (@MaxDesiatov) - Fix nested attributed intrinsic #79 (@MaxDesiatov)
- Fix compatibility with Swift 5.0 #77 (@MaxDesiatov)
- Attributed Intrinsic (value coding key) #73 (JoeMatt)
- Dynamic node encoding + new formatters + various fixes #70 (@JoeMatt)
- Add
NodeDecodingStrategy
, mirroringNodeEncodingStrategy
#45 (@regexident)
Assets 3
1 person reacted
You can’t perform that action at this time.