Bonjour à tous et bonne année!

Pour répondre à une problématique d'un client, je récupère via php un bout de page d'un site (je vous rassure, j'ai l'autorisation) pour ensuite le parser afin de produire un XML que je ressert via un web service.
Tout ce passe bien, mais voilà que je suis confronté à un autre problème : comment s'assurer que le xhtml du site en question n'a pas changé? (dans un tel cas, il faudrais revoir le script du parsing)

Je me suis donc penché sur la validation XSD mais j'avoue avoir du mal.

voici le code XHTML à valider (pas très propre):

<table cellpadding="0" cellspacing="1" border="0" class="CadreTableau">
<tr>
  <td class="CelluleEnteteOrange">Heures /<br/>consommation</td>
  <td class="CelluleEnteteOrange">Heures /<br/>consommation</td>
  <td class="CelluleEnteteOrange">Heures /<br/>consommation</td>
  <td class="CelluleEnteteOrange">Heures /<br/>consommation</td>
</tr>
<tr>
  <td>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr class="CelluleClairOrangeLeft">
        <td rowspan="2" align="right" class="bold">&#xA0;0:00</td>
        <td rowspan="2" width="5">&#xA0;</td>
        <td rowspan="2" class="txtNormalTab"><p align="left">Real. 66075 <br/>Prev. 65900</p></td>
      </tr>
    </table>
  </td>
  <td>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr class="CelluleClairOrangeLeft">
        <td rowspan="2" align="right" class="bold">&#xA0;0:15</td>
        <td rowspan="2" width="5">&#xA0;</td>
        <td rowspan="2" class="txtNormalTab"><p>Real. 65936 <br/>Prev. 65200</p></td>
      </tr>
    </table>
  </td>
  <td>  
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr class="CelluleClairOrangeLeft">
        <td rowspan="2" align="right" class="bold">&#xA0;0:30</td>
        <td rowspan="2" width="5">&#xA0;</td>
        <td rowspan="2" class="txtNormalTab"><p>Real. 64791 <br/>Prev. 64500</p></td>
      </tr>
    </table>
  </td>
  <td>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr class="CelluleClairOrangeLeft">
        <td rowspan="2" align="right" class="bold">&#xA0;0:45</td>
        <td rowspan="2" width="5">&#xA0;</td>
        <td rowspan="2" class="txtNormalTab"><p>Real. 63550 <br/>Prev. 63650</p></td>
      </tr>
    </table>
  </td>
</tr>
</table>


Voici le problèmes que je rencontre pour le moment:
je n'arrive pas à faire une règle de validation DISTINCT pour le premier table et pour les autres.

Toute aide est la bienvenu Smiley cligne

Merci d'avance
Modifié par Francois44 (07 Jan 2008 - 16:53)
j'ai enfin réussi à valider mon xhtml!

voici le code pour ceux que ça intéresse:

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="table">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="tr">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="td">
                <xs:complexType mixed="true">
                  <xs:sequence>
                    <xs:element minOccurs="0" name="table">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tr">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="td">
                                  <xs:complexType mixed="true">
                                    <xs:sequence minOccurs="0">
                                      <xs:element name="p">
                                        <xs:complexType mixed="true">
                                          <xs:sequence>
                                            <xs:element name="br" />
                                          </xs:sequence>
                                          <xs:attribute name="align" type="xs:string" use="optional" />
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="rowspan" type="xs:unsignedByte" use="required" />
                                    <xs:attribute name="align" type="xs:string" use="optional" />
                                    <xs:attribute name="class" type="xs:string" use="optional" />
                                    <xs:attribute name="width" type="xs:unsignedByte" use="optional" />
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="class" type="xs:string" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="border" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="cellpadding" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="cellspacing" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="width" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="br" />
                  </xs:sequence>
                  <xs:attribute name="class" type="xs:string" use="optional" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="cellpadding" type="xs:unsignedByte" use="required" />
      <xs:attribute name="cellspacing" type="xs:unsignedByte" use="required" />
      <xs:attribute name="border" type="xs:unsignedByte" use="required" />
      <xs:attribute name="class" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>