Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: XML BARDZO POTRZEBNA POMOC
Forum PHP.pl > Forum > XML, AJAX > XML
Samuraj
Witam!
Dopiero rozpoczynam naukę XML'a, tak więc moja wiedza jest znikoma sad.gif . Mam do zrealizowania następujący temat:

Należy zaprojektować format XML służący do przechowywania bazy teleadresowej.
Wymagania:
  1. dane: imię, nazwisko, telefon(stacjonarny, GSM, praca), email, www, data urodzenia, typ (prywatny/służbowy)
  2. atrybuty
  3. należy stworzyć plik XSD definiujący bazę (uniemożliwiający wprowadzenie błędów exclamation.gif)
  4. plik przykładowy z kilkunastoma wpisami
  5. wynik weryfikacji XML z użyciem XSD
Nie mogę sobie z tym poradzić sciana.gif , dlatego bardzo proszę o pomoc forumowiczów.
Pozdrawiam
phpion
Praca zaliczeniowa? Oj, nie odrabiamy tu takich zadań. Pokaż co do tej pory napisałeś i określ z czym masz problem - wtedy pogadamy.
Samuraj
to jest mój kod źródłowy który napisałem w XML:
Kod

   <?xml-stylesheet type="text/xml" href="ludzie.xsl"?>
   <ludzie>
       <człowiek dane="typprywatny">
           <imie>Jacek</imie>
           <nazwisko>Ogór</nazwisko>
           <ur>05.07.1958</ur>
         <tel typ="stacjonarny">(033) 879 55 55</tel>
       <tel typ="gsm">678 55 55</tel>
           <poczta>ogor@wp.pl</poczta>
           <web>http://www.ogor.wp.pl/</web>
       </człowiek>
      
           <człowiek dane="typprywatny">
           <imie>Piotr</imie>
           <nazwisko>Kwiatkowski</nazwisko>
           <ur>04.01.1986</ur>
         <tel typ="stacjonarny">(032) 555 66 77 88</tel>
      <tel typ="gsm">678 55 55</tel>
           <poczta>kwiatkowski@wp.pl</poczta>
           <web>http://www.kwiatkowski.wp.pl/</web>
       </człowiek>
      
       <człowiek dane="typsluzbowy">
           <imie>Jan</imie>
           <nazwisko>Kowalski</nazwisko>
           <ur>06.08.1973</ur>
           <tel typ="stacjonarny">(031) 111 22 33</tel>
       <tel typ="gsm">777 555 444</tel>
           <poczta>webmaster@kowalski.net</poczta>
           <web>http://www.kowalski.net</web>
       </człowiek>
      
       <człowiek dane="typsluzbowy">
           <imie>Sławomir</imie>
           <nazwisko>Sabuda</nazwisko>
           <ur>08.09.1986</ur>
           <tel typ="stacjonarny">(00) 999 11 77</tel>
      <tel typ="gsm">987 654 179</tel>
           <poczta>slawek@gmail.com</poczta>
           <web>http://www.samuraj.com</web>
       </człowiek>
      
  
      </ludzie>


A to kod źródłowy w XSL:
Kod

      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      
        <xsl:template match="/">
          <xsl:apply-templates/>
        </xsl:template>
      
        <xsl:template match="ludzie">
          <html>
            <body>
              <table border="1">
                <tr>
                  <td><b>Dane</b></td><td><b>Imię</b></td><td><b>Nazwisko</b></td><td><b>ur</b></td>
                  <td><b>Telgsm</b></td><td><b>Tel</b></td><td><b>Poczta</b></td><td><b>Web</b></td>
                </tr>
                <xsl:apply-templates/>
              </table>
            </body>
          </html>
        </xsl:template>
      
      
        <xsl:template match="człowiek">
          <tr>
                  
                  <xsl:if test="@dane='typprywatny'">
                      <xsl:attribute name="style">background-color: #EAEAEA</xsl:attribute>    
                  </xsl:if>
                  
                  <td><xsl:value-of select="@dane"/></td>
                  
                  <td><xsl:value-of select="imie"/></td>
                  
                  <td><xsl:value-of select="nazwisko"/></td>
                  <td><xsl:value-of select="ur"/></td>
                  <td><xsl:value-of select="telgsm"/></td>
                      <td><xsl:value-of select="tel"/></td>
                      
                                  <xsl:if test="@dane='typsluzbowy'">
                      <xsl:attribute name="style">background-color: #EAEAEA</xsl:attribute>    
                  </xsl:if>
                  
                  <td><xsl:value-of select="@dane"/></td>
                  
                  <td><xsl:value-of select="imie"/></td>
                  
                  <td><xsl:value-of select="nazwisko"/></td>
                  <td><xsl:value-of select="ur"/></td>
                  <td><xsl:value-of select="telgsm"/></td>
                      <td><xsl:value-of select="tel"/></td>
                  
                  
                  
                  <xsl:variable name="poczta">
                    <xsl:value-of select="poczta"/>
                  </xsl:variable>
                  <td><a href="mailto:{$poczta}"><xsl:value-of select="$poczta"/></a></td>
                  
                  <xsl:variable name="web">
                    <xsl:value-of select="web"/>
                  </xsl:variable>
                  <td><a href="{$web}"><xsl:value-of select="$web"/></a></td>
          </tr>
        </xsl:template>
      
      </xsl:stylesheet>
mike
1. Popraw posta stosując odpowiednie znaczniki bbCode.
2.
Cytat(Samuraj @ 13.01.2008, 12:48:55 ) *
to jest mój kod źródłowy który napisałem w XML:
(...)
A to kod źródłowy w XSL:
(...)
No i?
Nie zadałeś pytania. Skąd mamy wiedzieć z czym masz problem. My to pomagamy a nie robimy prace za kogoś. Opisz czego nie łapiesz, co Ci nie działa nie wychodzi. Pokaż jak próbowałeś a my Ci pomożemy.
Samuraj
A teraz moje pytania smile.gif :

1. Dlaczego kod który napisałem w xsl nie generuje mi pliku html, bo chyba tak powinno być questionmark.gif questionmark.gif
2. Czy w ogóle o to chodziło w 1 pkt. tego zadania
3. należy stworzyć plik XSD definiujący bazę (uniemożliwiający wprowadzenie błędów exclamation.gif ): jak w ogóle się do tego zabrać, znacie jakies tutoriale w necie, albo jakieś przykłady?questionmark.gifquestionmark.gifquestionmark.gif?
Proszę o cokolwiek co mogło by mi pomóc smile.gif

Pozdrawiam
gekon
3. Tutorial: http://www.w3schools.com/schema/schema_intro.asp
2. W zasadzie tak. Chociaż ja dałbym telefonowi atrybuty odpowiadające za lokalizację, np.:
  1. ...
  2. <tel typ="stacjonarny">(033) 879 55 55</tel>
  3. <tel typ="gsm">678 55 55</tel>
  4. ...

1. Nie powinien generować pliku. Poczytaj http://www.w3schools.com/xsl/xsl_languages.asp
Samuraj
Poprawilem ten kod XML'a wg. wskazówek smile.gif . Udało mi się stworzyć plik XSD do pkt. 3 smile.gif
Tym razem chciałbym zapytać :
1.) Czy dobrze jest napisany ten kod XSD który umieszczam poniżej do pkt.3 i czy o to w tym podpunkcie chodziło? questionmark.gif ?
2.)pkt.4 "plik przykładowy z kilkunastoma wpisami", nie wiem czy dobrze rozumiem, chodzi o to aby do kodu źródłowego XML'a dopisać więcej przykładowych wpisów z przykładowymi danymi osobowymi questionmark.gif?
3.)W jaki sposób stworzyć wynik weryfikacji XML z użyciem XSD?? Proszę o podpowiedzi, oraz cokolwiek co mogło by mi pomóc.

Mój kod XSD:

Kod
<?xml version="1.0" encoding="ISO-8859-2"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ludzie" type="ludzie-type"/>
     <xs:complexType name="człowiek-type">
          <xs:element name="imie" type="xs:string"/>
          <xs:element name="nazwisko" type="xs:string"/>
          <xs:element name="ur" type="xs:date"/>
          <xs:element name="tel" type="xs:string"/>
          <xs:element name="poczta" type="xs:string"/>
          <xs:element name="web" type="xs:string"/>
          
           <xs:sequence>
                          <xs:element name="człowiek" type="człowiek-type" maxOccurs="unbounded"/>
                  </xs:sequence>
          </xs:complexType>
          <xs:complexType name="człowiek-type">
                  <xs:sequence>
                  
                   <xs:element ref="imie" maxOccurs="unbounded"/>
                          <xs:element ref="imie"/>
                          <xs:element ref="nazwisko"/>
                          <xs:element ref="ur"/>
                          <xs:element ref="tel"/>
                          <xs:element ref="poczta"/>
                          <xs:element ref="web"/>
                  </xs:sequence>
          </xs:complexType>
  </xs:schema>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.