www.webdeveloper.com
Results 1 to 2 of 2

Thread: [RESOLVED] Rss + xsd + php

  1. #1
    Join Date
    Sep 2004
    Location
    Sri Lanka
    Posts
    486

    resolved [RESOLVED] Rss + xsd + php

    Hi,

    I am in need of validating a RSS file which is generated by a program and so I developed a XSD schema and tried to validate a RSS file with that using DOM.

    It didn't work not sure whether my schema is not valid, I have posted in XML section http://www.webdeveloper.com/forum/sh...142#post961142 , and my question is, is my approach to validate RSS via PHP is correct.

    Also are there any alternatives to validate a RSS feed.

    PHP File

    PHP Code:
    <?php
    $xdoc 
    = new DomDocument;
    $xmlfile 'xml/rss.xml';
    $xmlschema 'xml/rss.xsd';
    //Load the xml document in the DOMDocument object
    $xdoc->Load($xmlfile);
    //Validate the XML file against the schema
    if ($xdoc->schemaValidate($xmlschema)) {
    print 
    "$xmlfile is valid.\n";
    } else {
    print 
    "$xmlfile is invalid.\n";
    }
    ?>
    Schema File

    Code:
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
        <xsd:element name="rss" maxOccurs="1" minOccurs="1">
    		<xsd:complexType>		
    		<xsd:attribute name="version" type="xsd:string" default="2.0" />
    	    <xsd:element name="channel" maxOccurs="1" minOccurs="1">
    		<xsd:complexType>
    			<xsd:element name="title" minOccurs="1" maxOccurs="1">
    				<xsd:simpleType>
    				  <xsd:restriction base="xs:string">
    				    <xsd:length value="2"/>
    				  </xsd:restriction>
    				</xsd:simpleType>
    			</xsd:element>
    			<xsd:element name="link" minOccurs="1" maxOccurs="1">
    				<xsd:simpleType>
    				  <xsd:restriction base="xs:string">
    				    <xsd:length value="14"/>
    				  </xsd:restriction>
    				</xsd:simpleType>
    			</xsd:element>
    			<xsd:element name="description" minOccurs="1" maxOccurs="1">
    				<xsd:simpleType>
    				  <xsd:restriction base="xs:string">
    				    <xsd:length value="2"/>
    				  </xsd:restriction>
    				</xsd:simpleType>
    			</xsd:element>
    			<xsd:element name="image" minOccurs="0" maxOccurs="1">
    				<xsd:complexType>
    					<xsd:element name="title" minOccurs="1" maxOccurs="1">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:string">
    						    <xsd:length value="2"/>
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>
    					<xsd:element name="link" minOccurs="1" maxOccurs="1">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:string">
    						    <xsd:length value="14"/>
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>
    					<xsd:element name="url" minOccurs="1" maxOccurs="1">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:string">
    						    <xsd:length value="14"/>
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>
    					<xsd:element name="description" minOccurs="0" maxOccurs="1">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:string">
    						    <xsd:length value="2"/>
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>
    					<xsd:element name="width" minOccurs="0" maxOccurs="1" default="88">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:integer">
    						    <xsd:maxExclusive value="144"/>						
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>
    					<xsd:element name="height" minOccurs="0" maxOccurs="1" default="31">
    						<xsd:simpleType>
    						  <xsd:restriction base="xs:integer">
    						    <xsd:maxExclusive value="400"/>						
    						  </xsd:restriction>
    						</xsd:simpleType>
    					</xsd:element>				
    				</xsd:complexType>
    			</xsd:element>
    				<xsd:element name="category" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="2"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="copyright" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="2"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="docs" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="2"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="generator" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="2"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="language" minOccurs="0" maxOccurs="1" default="en-us">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="5"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="lastBuildDate" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="10"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="managingEditor" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="5"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="pubDate" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="10"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="skipDays" minOccurs="0" maxOccurs="1">
    					<xsd:complexType>
    						<xsd:element name="day" minOccurs="1" maxOccurs="6">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="2"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>				
    					</xsd:complexType>
    				</xsd:element>
    				<xsd:element name="skipHours" minOccurs="0" maxOccurs="1">
    					<xsd:complexType>
    						<xsd:element name="hour" minOccurs="1" maxOccurs="23">
    							<xsd:simpleType>
    							  <xsd:restriction base="xsd:integer">
    							    <xsd:maxExclusive value="23"/>
    								<xsd:minExclusive value="0"/>						
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>				
    					</xsd:complexType>
    				</xsd:element>
    				<xsd:element name="ttl" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xsd:integer">
    					    <xsd:minExclusive value="1"/>	
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<xsd:element name="webMaster" minOccurs="0" maxOccurs="1">
    					<xsd:simpleType>
    					  <xsd:restriction base="xs:string">
    					    <xsd:length value="5"/>
    					  </xsd:restriction>
    					</xsd:simpleType>
    				</xsd:element>
    				<!-- Item -->
    				 <xsd:element name="item" maxOccurs="unbounded" minOccurs="1">
    					<xsd:complexType>
    				
    						<xsd:element name="title" minOccurs="1" maxOccurs="1">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="2"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>
    						<xsd:element name="link" minOccurs="1" maxOccurs="1">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="14"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>
    						<xsd:element name="description" minOccurs="1" maxOccurs="1">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="2"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>
    						<xsd:element name="category" minOccurs="0" maxOccurs="1">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="2"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>
    						<xsd:element name="comments" minOccurs="0" maxOccurs="1">
    							<xsd:simpleType>
    							  <xsd:restriction base="xs:string">
    							    <xsd:length value="2"/>
    							  </xsd:restriction>
    							</xsd:simpleType>
    						</xsd:element>
    					</xsd:complexType>
    				 </xsd:element>
    			</xsd:complexType>
    	    </xsd:element>
    		</xsd:complexType>
    		</xsd:element>
    </xsd:schema>
    RSS File

    Code:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <rss version="2.0"><channel>
      <title>Schools Home Page</title>
      <link>http://www.schools.com</link>
      <description>Free web </description>
      <item>
        <title>RSS </title>
        <link>http://www.schools.com/rss</link>
        <description>New RSS tutorial</description>
      </item>
      <item>
        <title>XML Tutorial</title>
        <link>http://www.schools.com/xml</link>
        <description>New XML tutorial on School</description>
      </item>
    </channel></rss>
    Thanks and Best Regards
    Last edited by GUIR; 12-18-2008 at 06:21 AM.

  2. #2
    Join Date
    Sep 2004
    Location
    Sri Lanka
    Posts
    486

    resolved Mistake

    The Schema in above is invalid, those who are interested in a proper Schema for RSS 2.0 please go to section XML with the link I mentioned in earlier post.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.31857 seconds
  • Memory Usage 2,871KB
  • Queries Executed 13 (?)
More Information
Template Usage (34):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (2)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • bbcode_parse_start
  • postbit_imicons
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates