Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

XML validacija me zeza

[es] :: Java :: XML validacija me zeza

[ Pregleda: 3103 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon315

Član broj: 315
Poruke: 1657
*.antegra.com.



+13 Profil

icon XML validacija me zeza10.11.2006. u 14:17 - pre 212 meseci
XML sema:

Code:

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="paket">
    <xsd:annotation>
      <xsd:documentation>
        A sample element
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="devojke">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="devojka" maxOccurs="unbounded" minOccurs="0">
                <xsd:complexType>
                  <xsd:attribute name="id"/>
                  <xsd:attribute name="sifoni"/>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="momci">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="momak" maxOccurs="unbounded" minOccurs="0">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="devojka" maxOccurs="unbounded">
                      <xsd:complexType>
                        <xsd:attribute name="refId"/>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                  <xsd:attribute name="id"/>
                  <xsd:attribute name="ime"/>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>


XML za validaciju:

Code:

<?xml version="1.0" encoding="UTF-8" ?>
<paket>
  <devojke>
    <Xdevojka id="1" sifoni="4"/> <!-- NAMERNA GRESKA -->
    <devojka id="2" sifoni="5"/>
    <devojka id="3" sifoni="6"/>
  </devojke>
  <momci>
    <momak id="1" ime="Goran">
      <devojka refId="1"/>
      <devojka refId="2"/>
    </momak>
    <momak id="2" ime="Mixailo">
      <devojka refId="2"/>
      <devojka refId="3"/>
    </momak>
  </momci>
</paket>


Java metoda:

Code:

    private void validacijaXML() {
        
        try {

                   // Parse an XML document into a DOM tree.
                   DocumentBuilder parser =
                       DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    org.w3c.dom.Document document = parser.parse(new File("test.xml"));

                   // Create a SchemaFactory capable of understanding WXS schemas.
                   SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            

                   // Load a WXS schema, represented by a Schema instance.
                   Source schemaFile = new StreamSource(new File("../Shema/xmlSema.xsd"));
                   Schema schema = factory.newSchema(schemaFile);

                   // Create a Validator object, which can be used to validate
                   // an instance document.
                   Validator validator = schema.newValidator();

                   // Validate the DOM tree.
                   validator.validate(new DOMSource(document));

               } catch (ParserConfigurationException e) {
                   // exception handling
                    System.out.println("Bla1!");
               } catch (SAXException e) {
                   // exception handling - document not valid!
                   System.out.println("Nije validan xml!");
               } catch (IOException e) {
                   // exception handling
                    System.out.println("Bla2!");
               }       
    }


I samo prodje i ne obradi gresku, kao da je sve ok!

Gde gresim?

V
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
212.62.53.*



Profil

icon Re: XML validacija me zeza11.11.2006. u 09:19 - pre 212 meseci
Taj cuveni XML...

Nisam koristio XSD schemu do sada, vec sam samo parsirao XML fajl u Javu i iz Jave sam kreirao novi XML fajl. Kada se pogresi neki tag odmah se detektuje greska. Ne znam zasto tebi nece da detektuje gresku.

 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: XML validacija me zeza11.11.2006. u 11:19 - pre 212 meseci
Vidi o cemu se radi:

Postoje 2 nacina kako dobijam XML:

1. Programski - moj algoritam na osnovu nekih prikupljenih informacija generise taj XML i u tom slucaju on je vec validan jer postujem semu. Generisani XML se smesta na fajl sistem.

2. Korisnik uploaduje rucno generisani XML - e tu nastaje problem, jer ja uopste ne treba da ga parsiram, vec samo da ga smestim na disk ako je validan, sto ce reci da moram da izvrsim validaciju...

Postoji nekolicina API-a za validaciju, ali sam se odlucio za ovu Sun-ovu implementaciju sto je dosla uz Javu 1.5, medjutim nesto me zeza.

Odavde sam pratio uputstva:

http://java.sun.com/developer/...lArticles/xml/validationxpath/

Pokusao sam posle sa njihovim primerom i opet mi ne radi...

A sto se tice samog parsiranja, to nije problem, ako ja u kodu ocekujem neki tag ili atribut, a dobijem nesto sesto, to ce puci, ali nije to ono sto mi treba...
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: XML validacija me zeza11.12.2006. u 21:36 - pre 211 meseci
E da, btw, problem sam odavno resio primenom JAXB-a koji, prakticno, vrsi validaciju on the fly, jer su jaxb klase i izgenerisene iz xsd seme ;)
 
Odgovor na temu

[es] :: Java :: XML validacija me zeza

[ Pregleda: 3103 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.