The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
- Add Swift 5.8 support
**Full Changelog**: https://github.com/sersoft-gmbh/xmlwrangler/compare/5.4.0...5.5.0
## What's Changed
* Add Swift 5.7 support
**Full Changelog**: https://github.com/sersoft-gmbh/xmlwrangler/compare/5.3.1...5.4.0
- Fix documentation generation
**Full Changelog**: https://github.com/sersoft-gmbh/xmlwrangler/compare/5.3.0...5.3.1
## What's Changed
- Add Swift 5.6 support, drop support for Swift pre 5.5
- Fix warning in Swift 5.6
**Full Changelog**: https://github.com/sersoft-gmbh/xmlwrangler/compare/5.2.0...5.3.0
- Add `XMLContentBuilder`, which is a `@resultBuilder` implementation for building `XMLElement.Content` - this is only available when building with Swift 5.4.
- Add Swift 5.4 support.
This is the final version 5.0.0. No source changes have since the last RC.
# Changes
- Massive internal refactoring (addendum to version 4.0)
- `Element` is now named `XMLElement` with a typealias `XWElement` for disambiguation with `Foundation.XMLElement`
- All References to `object` that referred to an `XMLElement` have been replaced with `element`.
- `XMLElement.Content` is now a custom collection implementation containing the enum that was previously `Element.Content`.
- `XMLElement.Attributes` is now a custom collection implementation that works similar to a dictionary. The `XMLElement.Attributes.Key` is what was previously `Element.AttributeKey`. `XMLElement.Attributes.Content` is what was previously `Element.AttributeValue`.
- The `XMLAttributeContentConvertible`, `ExpressibleByXMLAttributeContent` and `XMLAttributeRepresentableProtocol` (which is the combination of the former two) can now be used to create attributes with dictionary literals. This allows e.g. the following code to work:
```swift
let existingString = "abc"
let attributeContent = XMLElement.Attributes.Content("some value")
let attributes: XMLElement.Attributes = [
"testKey": existingString,
"otherAttribute": "whatever",
"existingContent": attributeContent,
]
```
This is the first release candidate for a version 5.0.
# Changes
- Massive internal refactoring (addendum to version 4.0)
- `Element` is now named `XMLElement` with a typealias `XWElement` for disambiguation with `Foundation.XMLElement`
- All References to `object` that referred to an `XMLElement` have been replaced with `element`.
- `XMLElement.Content` is now a custom collection implementation containing the enum that was previously `Element.Content`.
- `XMLElement.Attributes` is now a custom collection implementation that works similar to a dictionary. The `XMLElement.Attributes.Key` is what was previously `Element.AttributeKey`. `XMLElement.Attributes.Content` is what was previously `Element.AttributeValue`.
- The `XMLAttributeContentConvertible`, `ExpressibleByXMLAttributeContent` and `XMLAttributeRepresentableProtocol` (which is the combination of the former two) can now be used to create attributes with dictionary literals. This allows e.g. the following code to work:
```swift
let existingString = "abc"
let attributeContent = XMLElement.Attributes.Content("some value")
let attributes: XMLElement.Attributes = [
"testKey": existingString,
"otherAttribute": "whatever",
"existingContent": attributeContent,
]
```
# Version 4.0.0
- Adds support for Swift 5.3, dropping support for previous Swift versions.
- Removes previously deprecated APIs
- Renames the package to `xmlwrangler` (from `XMLWrangler`). Please adjust your target dependency definition to: `.product(name: "XMLWrangler", package: "xmlwrangler")`
- Adds `ExpressibleByXMLElement` and `XMLElementConvertible` protocols for dealing with Elements and types easier. There is also `XMLElementRepresentable` which is simply the combination of the two aforementioned protocols.
- Some convenience APIs that were simply a chain of calling other public APIs were removed (e.g. `convertedStringContent(ofElementAt:)`). Please use the corresponding public APIs directly (e.g. `element(at: /*...*/).convertedStringContent()`.
Fixes #11.
Add support for Swift 5.2