Comments (3)
It worked, thanks a lot for the library and your help!
from dart-xml-serializable.
Hi @provokateurin, you should be able to use the isSelfClosing
and includeIfNull
options to achieve this:
import 'package:xml/xml.dart';
import 'package:xml_annotation/xml_annotation.dart' as annotation;
part 'example.g.dart';
@annotation.XmlRootElement(
name: 'resourcetype',
isSelfClosing: false,
)
@annotation.XmlSerializable()
class ResourceType {
@annotation.XmlElement(
name: 'collection',
isSelfClosing: true,
includeIfNull: true,
)
List<String?>? collection;
ResourceType({
this.collection,
});
factory ResourceType.fromXmlElement(XmlElement element) =>
_$ResourceTypeFromXmlElement(element);
void buildXmlChildren(
XmlBuilder builder, {
Map<String, String> namespaces = const {},
}) =>
_$ResourceTypeBuildXmlChildren(
this,
builder,
namespaces: namespaces,
);
void buildXmlElement(
XmlBuilder builder, {
Map<String, String> namespaces = const {},
}) =>
_$ResourceTypeBuildXmlElement(
this,
builder,
namespaces: namespaces,
);
List<XmlAttribute> toXmlAttributes({
Map<String, String?> namespaces = const {},
}) =>
_$ResourceTypeToXmlAttributes(
this,
namespaces: namespaces,
);
List<XmlNode> toXmlChildren({
Map<String, String?> namespaces = const {},
}) =>
_$ResourceTypeToXmlChildren(
this,
namespaces: namespaces,
);
XmlElement toXmlElement({
Map<String, String?> namespaces = const {},
}) =>
_$ResourceTypeToXmlElement(
this,
namespaces: namespaces,
);
}
void main(List<String> arguments) {
var collection = ResourceType.fromXmlElement(
XmlDocument.parse(
'<resourcetype></resourcetype>',
).rootElement,
).collection;
assert(collection == null);
collection = ResourceType.fromXmlElement(
XmlDocument.parse(
'<resourcetype><collection/></resourcetype>',
).rootElement,
).collection;
assert(collection != null);
}
from dart-xml-serializable.
Thank you, I'll try it out. I played with those options, but still couldn't get it working. Maybe I did something wrong
from dart-xml-serializable.
Related Issues (20)
- Enum-Serializtion does not work anymore if split between multiple files HOT 1
- Reduce boilerplate code HOT 1
- Include beginner friendly docs HOT 1
- ignore attributes HOT 2
- Add support for fields in superclasses HOT 8
- Add support for import prefixes HOT 3
- Asynchronous deserialization with Streams HOT 3
- Some methods not generated by builder HOT 3
- Dynamically choose names for XML-elements HOT 3
- feat: Add support for XML base64Binary type HOT 3
- Add support for serializing XML CDATA HOT 2
- Add support for custom converters HOT 3
- Upgrade the version constraint of analyzer HOT 1
- Add support for serializing elements using InnerXml HOT 7
- Better deserialization of empty elements / empty strings HOT 7
- Created List of single null class object but xml element is empty HOT 4
- Nullable fields annotated with XmlCDATA results in incorrectly generated source code HOT 1
- How to Write XML Element Names That Have a $ Sign HOT 4
- Nullable converter types are not working as intended
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dart-xml-serializable.