Comments (3)
That is a very good point, I think we can absolutely use the context of the parser's state to provide useful error messages. It can definitely get confusing if you have multiple attributes with the same name to know which one is missing.
from declxml.
PR #3 should help improve error messages by providing some context information about where we were when the error occurred for both parsing and serialization.
For instance, if we have a processor
books = xml.array(xml.dictionary('book', [
xml.string('title'),
xml.integer('year-published')
]), nested='books')
and some XML with a missing field
<books>
<book>
<title>I, Robot</title>
<year-published>1950</year-published>
</book>
<book>
<title>Foundation</title>
</book>
</books>
We would get the following error when parsing :
MissingValue: Missing required element "year-published" at books>book[1]>year-published
from declxml.
Definitely let me know if there are more ways error messages can be improved. Thank you for your feedback, I really appreciate it!
from declxml.
Related Issues (19)
- Array with nodes that have attributes AND values HOT 3
- Send xml data to constructor HOT 5
- Use attributes as keys for dictionaries HOT 19
- Cannot parse XML into frozen attrs classes
- Support for reading data from attributes on childless objects? HOT 2
- Add type hints to public API
- Is there any array attributes HOT 2
- non-required named_tuple HOT 2
- Recursive Elements
- Optional aggregate processors - a pain point
- Create processor from typing annotations
- Order changed when seriallized to string
- Calling `xml.serialize_to_string()` without an indent leaves out `<?xml version="1.0" encoding="utf-8"?>`
- Parse failure on dictionary with attribute and value HOT 2
- declxml on Arch Linux HOT 3
- None values for namedtuples and objects not handled when serializing
- Access a node's parent attribute HOT 2
- Parser fails on non ASCII strings on python 2 HOT 3
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 declxml.