[ Alef @ 26.06.2004. 23:48 ] @
Da li mogu nekako u XML-u da se naprave veze kao što su

Code:
<A href="negde">tekst</A>

u HTML-u? Znači kada kliknem na vezu, browser treba da me odvede tamo gde hoću.
Treba mi zbog sadržaja…
Ne bih da petljam sa XSL-om, ako je ikako moguće :)




[Ovu poruku je menjao -zombie- dana 29.06.2004. u 05:34 GMT]
[ -zombie- @ 29.06.2004. 03:29 ] @
naravno da mogu.. tebi verovatno treba xlink http://www.w3.org/TR/xlink/

mada, ne bi bilo loše da objasniš malo detaljnije situaciju u kojoj ti ovo treba? šta tačno generišeš? da li koristiš XSL-T ili? u čemu to gledaš? da li te interesuje samo jedan browser, ili svi (samo mozilla podržava nešto od xlink-a, a čini mi se da je moguće "naterati" i IE da radi nešto korisno, ali je malo komplikovanije..). itd, etc..

u najprostijem slučaju, možda prođeš i sa jednostavnim dodavanjem xlink:type atributa na već postojeće A elemente..

Code:
<a href="uri" xlink:type="simple">text</a>


a možda ti treba i nešto komplikovanije..

usput, možda ti pomogne i ovaj članak sa xml.com http://www.xml.com/pub/a/2000/09/xlink.
[ Alef @ 29.06.2004. 12:30 ] @
Ne treba mi ništa specialno… Formatirao sam neku poeziju u XML-u i sada hoću da na početku dokumenta imam sadržaj, pa kad se otvori crnjanski.xml u browseru (po mogućnosti svakom) i klikne na link u sadržaju, recimo, «Trag», da me on pozicionira u tekstu na to mensto.
Zači dokument je čist XML, a formatiranje dobijam pomoći CSS-a — nema XSLT-a.
Ali prvo ću da pogledam sve ove linkove što si ih napisao, pa ću da vidim da li pomažu. U svakom slučaju hvala.
[ Alef @ 29.06.2004. 13:37 ] @
Uspeo sam da napravim veze između dva dokumenta, ali nikako ne mogu da napravim veze u okviru jednog dokumenta — a to je upravo ono sto mi treba…
[ -zombie- @ 02.07.2004. 08:11 ] @
da, evo sad sam i ja probao..

iako bi po xlink/xpointer specifikaciji #id trebalo da radi isto (slično) kao u HTMLu (tj tačnije, kao u XHTMLu, jer se koriste ID atributi umesto A name atributa), to ne radi u mozili, ili bar ja nisam uspeo da ga nateram..

a probao sam i da nađem rešenje, i za više od pola sata na googlu nisam našao ništa korisno.. baš sam zainteresovan, pa ako ti u međuvremenu nađeš rešenje, budi dobar pa ga objavio ovde.. ;)
[ -zombie- @ 02.07.2004. 09:33 ] @
uff, čim sam ovo prethodno napisao, setih se u čemu je problem.. XML procesor ne zna unapred koji atribut se koristi kao ID, pa se to mora definisati u DTDu tvog XML formata.

evo ga primer mydoc.xml koji radi ovo što tebi treba, stim da je DTD (DOCTYPE) naravno mogao da bude definisan i u posebnom fajlu..

Code:
<?xml-stylesheet href="style.css" type="text/css" ?> 

<!DOCTYPE mydoc [
<!ATTLIST myref id ID #IMPLIED>
]>

<mydoc xmlns:xlink="http://www.w3.org/1999/xlink">
  
    <mylink xlink:href="#ref" xlink:type="simple">mylink</mylink>

    <!-- dummy text, samo da bi se pojavio scroll bar -->
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    
    <myref id="ref">myref</myref>
  
</mydoc>


dok style.css služi samo da se xml fajl ne bi prikazao kao xml drvo, već kao dokument, i da stilizuje P tagove kao block-level elemente (čisto da bi popunio stranicu, da bi se pojavio skrol, i da bi uopšte mogli da se vide efekti odlaska na #ref link).

Code:
p {
    display: block;
}

[ Alef @ 02.07.2004. 11:34 ] @
E, hvala ti Zombi! Poštedeo si me besanih noć
Nego jel ovo radi posao i u Exploreru? Nemam ga , pa zato pitam…
[ noviKorisnik @ 02.07.2004. 11:58 ] @
ne radi u exploreru. provereno.
[ -zombie- @ 02.07.2004. 13:18 ] @
da, rekoh već da IE ne podržava xlink. nešto mi je u slabom sećanju, ali valjda ima neki hack da se IE "natera" da radi i sa XML dokumentima, ali je valjda nešto komplikovano, koristi behaviors, itd.. (ako naiđem ponovo na to, dopisaću)

a ima i još jedno rešenje, a to je da se html preko namespace-a uglavi u XML dokument, i da se koristi običan A tag.. naravno, to ne radi onda u mozili, pa je neophodno duplirati href atribut..

Code:
<?xml-stylesheet href="style.css" type="text/css" ?> 

<!DOCTYPE mydoc [
<!ATTLIST myref id ID #IMPLIED>
]>

<mydoc xmlns:html="http://www.w3.org/TR/REC-html40"
        xmlns:xlink="http://www.w3.org/1999/xlink">
  
    <html:a href="#ref" xlink:href="#ref" xlink:type="simple">
        mylink
    </html:a>

    <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> <p>bla</p> 
    
    <myref id="ref">myref</myref>
  
</mydoc>


samo, ne znam koliko je ovo različito od korišćenja samog HTMLa..
[ Alef @ 02.07.2004. 23:08 ] @
Inače, Mozilla mi ne radi sa eksternim DTD-om, samo sa internim?! U čemu je štos?
(Tj. link ne radi kada je DTD u posebnoj datoteci, samo kada je uključen u samu xml datoteku)
[ -zombie- @ 03.07.2004. 08:45 ] @
uff.. biće da je ovo..

Citat:
A Word About DTDs and Other External Entities

Mozilla does not load external entities from the web.

Mozilla can load external entities whose system identifier uses the 'chrome' protocol. This feature is used mainly to localize Mozilla to different languages (the UI strings are stored in external DTD files). Another exception is an entity whose system identifier is a relative path, and the XML declaration states that the document is not standalone (default), in which case Mozilla will try to look for the entity under <bin>/res/dtd directory.

Mozilla may also make an expection with XHTML documents, see below.

Mozilla will read internal (DTD) subsets, and in special circumstances external DTDs as explained above and will use this information to recognize ID type attributes, default attribute values, and general entities.


znači, ili ostavi to unutar xml fajla, ili ubaci svoj DTD u mozilla/res/dtd/ (ako praviš neke interne zajebancije).

http://www.mozilla.org/newlayout/xml/#dtd

a koliko sam pronjuškao po bugzilli, izgleda da ovo neće ni biti ispravljeno u skorije vreme (neko ograničenje xerces parsera), mada ako implementiraju xml kataloge (što navode kao jedan od prioriteta), postojaće upotrebljiva alternativa..
[ -zombie- @ 14.07.2004. 23:04 ] @
u međuvremenu se setih još jednog načina referenciranja za koji nije neophodno definisati ID u DTDu..

xlink:href="#xpath1(//*[@id='šifra'])"

ovo koristi "običan" xpath za referenciranje, i selektuje bilo koji element koji ima atribut id sa vrednošću "šifra".. (naravno, radi samo u mozili)