Comments (8)
So, I reviewed the code and it seems that I overestimated the complexity. It looks a bit easier now #159.
from rss.
Extensions are recognized by a namespace URI. iTunes URI in your example is http://www.itunes.com/DTDs/Podcast-1.0.dtd
while the crate looks for http://www.itunes.com/dtds/podcast-1.0.dtd
.
from rss.
Wouldn't a toLowercase comparison solve the issue?
from rss.
If you'd like to I can add a pull request for this. @andy128k
from rss.
Tough question. Formally URIs are case sensitive and such a change may be risky.
from rss.
Good point. The question is will someone else create a schema that is equal to the iTunes url but change a character in the url to lower/uppercase. Probably not. So I think the chance of breaking an existing project using your library is very minimal.
from rss.
https://help.apple.com/itc/podcasts_connect/#/itcb54353390
Without this declaration, Podcasts Connect ignores all tags specific to Apple Podcasts. The namespace definition is case sensitive, and must be entered as shown.
It's not about someone creating a schema (that's unlikely and that should be someone with access to www.itunes.com
domain).
But someone may create a feed with multiple namespaces:
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:ITUNES="http://www.itunes.com/DTDs/Podcast-1.0.dtd" version="2.0">
<channel>
<itunes:author>Author 1</itunes:author>
<ITUNES:author>Author 2</ITUNES:author>
</channel>
</rss>
Now we have an issue with merging formally two extensions into a single one. OTOH someone may create an alias like <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:ITUNES="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
and we still have this problem.
I'd say, this is much bigger issue than just add toLowercase
.
from rss.
Thank you for the changes 😃.
from rss.
Related Issues (20)
- Automatically add the content namespace to a channel when an item makes use of <content:encoded> (or document the requirement) HOT 1
- Allow taking a chrono::DateTime when setting e.g. pub_date, last_build_date, etc.
- Add dc:date item field to pubDate field HOT 4
- valid RSS feed can not be parsed HOT 1
- Allow choice between `write_cdata_element` and `write_text_element` HOT 5
- Err when reading/writing/reading a channel
- Track changes
- All build methods returning String instead of Error HOT 3
- Make ToXml public HOT 4
- wasm build HOT 2
- Add support for the podcast namespace
- Getters and setters for new extensions HOT 2
- update `quick_xml` dependency HOT 2
- Support CDATA or values without escaping when writing Extension.value HOT 4
- Invalid RSS feed when having 0 items in a podcast HOT 6
- Failed to build HOT 1
- Extensions not recognized when namespaces are declared inline HOT 1
- Podcast rss feed returns EOF with rust-syndication crate HOT 8
- atom: Error: the input did not begin with an rss tag 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 rss.