Thread View: pl.comp.xml
13 messages
13 total messages
Started by walec51
Thu, 14 May 2009 22:43
XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Thu, 14 May 2009 22:43
Date: Thu, 14 May 2009 22:43
62 lines
2668 bytes
2668 bytes
Witam. Zasłużmy że mój program akceptuje np takiego xml'a: <Block> <Block> <PrintMessage/> <Block> <PrintMessage /> <PrintMessage /> </Blok> </Block> <Block> <PrintMessage /> <PrintMessage /> </Block> </Block> I teraz próbuje dla tego typu xml'ków ułożyć XML Schema: <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <group name="Statement"> <choice> <element name="Block"> <complexType> <sequence> <element ref="Statement" maxOccurs="unbounded" /> </sequence> </complexType> </element> <element name="PrintMessage"> </element> </choice> </group> </schema> Ale tu pojawia mi się błąd w schemie typu: src-resolve.4.2: Error resolving component 'Statement'. It was detected that 'Statement' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:///home/awalczak/ workspace/xmlstacks/src/ info/adamwalczak/xmlstacks/res/lang.xsd'. If this is the incorrect namespace, perhaps the prefix of 'Statement' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:///home/awalczak/ workspace/xmlstacks/src/ info/adamwalczak/xmlstacks/res/lang.xsd'. I tu że tak powiem treść tego błędu kompletnie do mnie nie przemawia : ( Jakieś sugestie co mogę robić nie tak ?
Re: XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Thu, 14 May 2009 22:46
Date: Thu, 14 May 2009 22:46
2 lines
1329 bytes
1329 bytes
PS. XML z pojedynczym tagiem <PrintMessage /> jest także akceptowalny przez mój program.
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 05:12
Date: Fri, 15 May 2009 05:12
18 lines
1595 bytes
1595 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości news:92ccb06a-5b21-463b-936f-583e472452ba@x6g2000vbg.googlegroups.com... > <group name="Statement"> ... > <element ref="Statement" maxOccurs="unbounded" /> Tak nie mozna. Mozna w ten sposob: element/@ref <= /schema/element/@name group/@ref <= /schema/group/@name Co nie zmienia faktu, ze nie widze tutaj zastosowania dla group ;) Hint 1: popatrz na problem "od dolu". Hint 2: element/@type <= /schema/complexType/@name sz.
Re: XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Fri, 15 May 2009 09:11
Date: Fri, 15 May 2009 09:11
43 lines
2044 bytes
2044 bytes
Idąc za radą spróbowałem czegoś takiego:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="Statement">
<choice>
<element ref="Block" />
<element ref="PrintMessage" />
</choice>
</complexType>
<element name="Block">
<complexType mixed="true">
<sequence>
<element type="Statement" maxOccurs="unbounded" />
</sequence>
</complexType>
</element>
<element name="PrintMessage" />
</schema>
Jednak nadal otrzymuje błąd tego samego typu and tym razem dla
identyfikatora Block w <element ref="Block" />.
Zdaje się że w xsd brakuje czegoś typu z C++
class A;
class B {
class A;
...
};
class A {
...
};
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 09:30
Date: Fri, 15 May 2009 09:30
43 lines
2666 bytes
2666 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości
news:fd7e2adb-15c2-49a1-a2b7-5fd2f31cdb66@t10g2000vbg.googlegroups.com...
> Idąc za radą spróbowałem czegoś takiego:
> <complexType name="Statement">
> <choice>
> <element ref="Block" />
> <element ref="PrintMessage" />
> </choice>
> </complexType>
Prawie dobrze ;>
<element name="Block" type="Statement"/>
<complexType name="Statement">
<choice>
<element name="Block" type="Statement"/>
<element name="PrintMessage" type="..."/>
Uwaga natury ogolnej:
Opieranie schemy o element'y definiowane na najwyzszym poziomie i pozniejsze
odwolywanie sie do nich przez ref'y jest proszeniem sie o klopoty, poniewaz,
jezeli nie dopiszesz do tego w dokumentacji wymagan nieformalnych (ktorych
im mniej tym lepiej), to ktos przysle ci dokument _zaczynajacy_sie_ od
innego elementu niz to sobie zalozyles i bedziesz w d...
W Twoim przypadku nie ma to raczej znaczenia, ale Pewne Ministerstwo walnelo
w schemach taki numerasek i szukam kogos kto nie bedzie sie bal porobic se
jaj z Waznego Urzedu ;>
> Zdaje się że w xsd brakuje czegoś typu z C++
Nie brakuje (co pokazalem wyzej).
Co najwyzej przeszkadzaja nawyki wynikajace ze zindoktrynowania przez
Jedynie Sluszne Relacyjne Modele Baz Danych, ktore w przypadku dosc
oczywistych zastosowan mozliwosci oferowanych przez xml i standardy z nim
zwiazane stawiaja pod sciana ;)
sz.
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 09:31
Date: Fri, 15 May 2009 09:31
16 lines
1746 bytes
1746 bytes
Użytkownik "szomiz" <szomiz@kocha.dostawac.reklamy.przez.net> napisał w
wiadomości news:gujcqt$fk5$1@atlantis.news.neostrada.pl...
> <element name="Block" type="Statement"/>
>
> <complexType name="Statement">
> <choice>
> <element name="Block" type="Statement"/>
> <element name="PrintMessage" type="..."/>
Ups, bylo juz kiedys o tym...
<element name="Block" type="Statement" minOccurs="0"/>
<element name="PrintMessage" type="..." minOccurs="0"/>
sz.
Re: XML Schema - deklaracje rekurencyjne
Author: toudidel
Date: Fri, 15 May 2009 13:47
Date: Fri, 15 May 2009 13:47
11 lines
1345 bytes
1345 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości news:92ccb06a-5b21-463b-936f-583e472452ba@x6g2000vbg.googlegroups.com... >Witam. >Zasłużmy że mój program akceptuje np takiego xml'a: >(...) Polecam w tej materii artykuł: http://xmlguru.net/artykuly/schema/145-schema-element-w-nadmiarze-kiedy-warto.html -- td
Re: XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Fri, 15 May 2009 18:09
Date: Fri, 15 May 2009 18:09
34 lines
2662 bytes
2662 bytes
Dzięki za szybką odpowiedź! Jednak po zaaplikowaniu tych zmian nadal mam podobny problem. Teraz mój xsd wygląda tak: <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"> <element name="Block" type="Statement" /> <complexType name="Statement"> <choice> <element name="Block" type="Statement" minOccurs="0" /> <element name="PrintMessage" minOccurs="0" /> </choice> </complexType> </schema> I otrzymuje wyjątek dla <element name="Block" type="Statement" /> że src-resolve.4.2: Error resolving component 'Statement'. It was detected that 'Statement' is in namespace 'http://www.w3.org/2001/ XMLSchema', but components from this namespace are not referenceable from schema document 'file:/home/awalczak/workspace/xmlstacks/bin/info/ adamwalczak/xmlstacks/res/lang.xsd'. If this is the incorrect namespace, perhaps the prefix of 'Statement' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:/home/awalczak/workspace/xmlstacks/bin/info/ adamwalczak/xmlstacks/res/lang.xsd'. Moje Sun'owa implementacja walidatora jest skopana ? Czy znowu coś robię nie tak?
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 18:41
Date: Fri, 15 May 2009 18:41
36 lines
2947 bytes
2947 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości news:6d8c523f-0e8a-440c-9848-40505f2f9509@e20g2000vbc.googlegroups.com... > I otrzymuje wyjątek dla <element name="Block" type="Statement" /> że > src-resolve.4.2: Error resolving component 'Statement'. It was > detected that 'Statement' is in namespace 'http://www.w3.org/2001/ > XMLSchema', but components from this namespace are not referenceable [ciach] > Moje Sun'owa implementacja walidatora jest skopana ? > Czy znowu coś robię nie tak? Nie. To raczej _moja_mania_ zapodawania uproszczonych/schematycznych rozwiazan oraz _Twoja_konwencja_ definiowania schemy bez prefiksowania schemowych elementow. To sie moze wydac popieprzone (mimo, ze ma glebszy sens, na ktory ani czas, ani miejsce), ale _reguly_ z xml-schema /dzialaja/ *inaczej* przy: 1. <schema xmlns="http://www.w3.org/2001/XMLSchema">...</schema> 2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">...</xsd:schema> 3. <xsd:schema targetNamespace="jakies:uri" xmlns:xsd="http://www.w3.org/2001/XMLSchema">...</xsd:schema> 4. <xsd:schema targetNamespace="jakies:uri" xmlns="jakies:uri" xmlns:xsd="http://www.w3.org/2001/XMLSchema">...</xsd:schema> A jak dodac do tych opcji elementFormDefault, to mozna (bez znajomosci niuansow) oszalec. A na pewno sie zniechecic. Podsumowujac: Twoj dokument ma okreslona przestrzen nazw, czy jest z serii "noNamespace"? Bo glownie od tego zalezy jak napisac scheme, ktorej potrzebujesz i/lub jak wziac poprawki na _ewentualne_ problemy z implementacja standardu przez konkretna bilblioteke. sz.
Re: XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Fri, 15 May 2009 19:47
Date: Fri, 15 May 2009 19:47
6 lines
1710 bytes
1710 bytes
> Podsumowujac: Twoj dokument ma okreslona przestrzen nazw, czy jest z serii > "noNamespace"? Z serii noNamespace. Heh a z tutoriala w3c zapowiadało się że to będzie takie proste :)
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 20:23
Date: Fri, 15 May 2009 20:23
34 lines
2679 bytes
2679 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości
news:74d78640-2ffd-41bd-9f3a-300682426b10@b1g2000vbc.googlegroups.com...
> Z serii noNamespace.
No to sprobuj:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Block" type="blockDef"/>
<xs:complexType name="blockDef">
<xs:choice minOccurs="0" maxOccurs="unbonded">
<xs:element name="Statement" type="blockDef"/>
<xs:element name="PrintMessage"/>
</xs:choice>
</xs:complexType>
</xs:schema>
I _jezeli_ zadziala (a powino, bo wlasnie mam obok taka /noNamespace/
konstrukcje wzbogacona o xs:unique i w msxml'u hula, ze stach) - w ramach
ekspiacji - doczytaj w specyfikacji (albo na tym czacie: bylo) i napisz na
forum milosnikow goldenow, jak i dlaczego bedzie dzialac PrintMessage ;>
> Heh a z tutoriala w3c zapowiadało się że to będzie takie proste :)
Bo to wszystko _na_prawde_ jest proste. Pod warunkiem ze sie zaczyna od
przejrzenia specyfikacji, a nie tutoriala.
Xml schema _podobnie_ jak XSLT ma mniej zdefiniowanych elementow niz dowolna
wersja HTML'a.
Z tym, ze w przypadku schemy zamotanie zagniezdzen i zaleznosci jest do
HTML'a porownywalne.
sz.
Re: XML Schema - deklaracje rekurencyjne
Author: szomiz
Date: Fri, 15 May 2009 20:26
Date: Fri, 15 May 2009 20:26
34 lines
2667 bytes
2667 bytes
Użytkownik "walec51" <walec5@gmail.com> napisał w wiadomości
news:74d78640-2ffd-41bd-9f3a-300682426b10@b1g2000vbc.googlegroups.com...
> Z serii noNamespace.
No to sprobuj:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Block" type="blockDef"/>
<xs:complexType name="blockDef">
<xs:choice minOccurs="0" maxOccurs="unbonded">
<xs:element name="Block" type="blockDef"/>
<xs:element name="PrintMessage"/>
</xs:choice>
</xs:complexType>
</xs:schema>
I _jezeli_ zadziala (a powino, bo wlasnie mam obok taka /noNamespace/
konstrukcje wzbogacona o xs:unique i w msxml'u hula, ze stach) - w ramach
ekspiacji - doczytaj w specyfikacji (albo na tym czacie: bylo) i napisz na
forum milosnikow goldenow, jak i dlaczego bedzie dzialac PrintMessage ;>
> Heh a z tutoriala w3c zapowiadało się że to będzie takie proste :)
Bo to wszystko _na_prawde_ jest proste. Pod warunkiem ze sie zaczyna od
przejrzenia specyfikacji, a nie tutoriala.
Xml schema _podobnie_ jak XSLT ma mniej zdefiniowanych elementow niz dowolna
wersja HTML'a.
Z tym, ze w przypadku schemy zamotanie zagniezdzen i zaleznosci jest do
HTML'a porownywalne.
sz.
Re: XML Schema - deklaracje rekurencyjne
Author: walec51
Date: Mon, 18 May 2009 17:31
Date: Mon, 18 May 2009 17:31
9 lines
2180 bytes
2180 bytes
Bardzo dziękuje za pomoc. Wskazówka z przestrzeniami nazw załatwiła sprawę. A potrzebne mi to było do opisu mojego XML'owego języka skryptowego do przetwarzania plików XML. Więcej informacji o składni oraz interpreterze jest dostępne na: http://www.adamwalczak.info/homepage/xmlstacks/ Sam język, który stworzyłem szału nie robi; on po prostu jest (na zaliczanie :) ). Choć sposób w jaki zaprojektowałem interpreter uważam za całkiem udany.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads