+ modules = new Vector();
+ namespaceURItoModule = new HashMap();
+ moduleToPrefix = new HashMap();
+
+ registerModule(new RSSBasicModule(RDF_NAMESPACE_URI, "RDF module"), "rdf");
+ registerModule(new RSSBasicModule(RSS_1_0_NAMESPACE_URI, "RSS 1.0 module"), "rss");
+ registerModule(new RSSBasicModule(RSS_0_9_NAMESPACE_URI, "RSS 0.9 module"), "rss");
+
+ RSSBasicModule dcModule = new RSSBasicModule(DUBLINCORE_NAMESPACE_URI, "RSS Dublin Core 1.1");
+ dcModule.addProperty("date", RSSModule.W3CDTF_PROPERTY_TYPE);
+ registerModule(dcModule, "dc");
+
+ RSSBasicModule dcTermsModule = new RSSBasicModule(DUBLINCORE_TERMS_NAMESPACE_URI, "RSS Qualified Dublin core");
+ dcTermsModule.addProperty("created", RSSModule.W3CDTF_PROPERTY_TYPE);
+ dcTermsModule.addProperty("issued", RSSModule.W3CDTF_PROPERTY_TYPE);
+ dcTermsModule.addProperty("modified", RSSModule.W3CDTF_PROPERTY_TYPE);
+ dcTermsModule.addProperty("dateAccepted", RSSModule.W3CDTF_PROPERTY_TYPE);
+ dcTermsModule.addProperty("dateCopyrighted", RSSModule.W3CDTF_PROPERTY_TYPE);
+ dcTermsModule.addProperty("dateSubmitted", RSSModule.W3CDTF_PROPERTY_TYPE);
+ registerModule(dcTermsModule, "dcterms");
+
+ RSSBasicModule v2vTermsModule = new RSSBasicModule(V2V_NAMESPACE_URI, "indymedia v2v RSS module");
+ v2vTermsModule.addMultiValuedProperty("topic", RSSModule.PCDATA_PROPERTY_TYPE);
+ v2vTermsModule.addMultiValuedProperty("genre", RSSModule.PCDATA_PROPERTY_TYPE);
+ v2vTermsModule.addMultiValuedProperty("link", RSSModule.PCDATA_PROPERTY_TYPE);
+ registerModule(v2vTermsModule, "v2v");
+
+ registerModule(new RSSBasicModule(EVENT_NAMESPACE_URI, "Event RSS module"), "ev");
+ registerModule(new RSSBasicModule(TAXONOMY_NAMESPACE_URI, "Taxonomy RSS module"), "taxo");
+ registerModule(new RSSBasicModule(CONTENT_NAMESPACE_URI , "Content RSS module"), "content");
+ }
+
+ public void registerModule(RSSModule aModule, String aPrefix) {
+ modules.add(aModule);
+ namespaceURItoModule.put(aModule.getNamespaceURI(), aModule);
+ moduleToPrefix.put(aModule, aPrefix);