27. marts 2004 - 14:16Der er
18 kommentarer og 1 løsning
DTD - rækkefølge af elementer er ligegyldig
Er lige startet på XML og er så lige kørt fast i et sikkert meget enkelt problem: hvordan erklærer man i sin DTD at et element skal indeholde en række child elementer, men at deres rækkefølge er ligegyldig?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
nute>har lige kigget på den, men jeg synes det er lidt misvisende: "The example above declares that the "note" element can contain zero or more occurrences of parsed character, "to", "from", "header", or "message" elements." Jeg vil kun have one occurence af hvert element.
F.eks. hvis elementet doc_info skal indeholde elementerne doc_type, doc_title, doc_date og doc_author, men kun én forekomst af hvert element, dog gerne i tilfældig rækkefølge.
olebole> jo, jeg har godt nok læst at DTD er en forældet metode og at man bør foretrække schemas, men jeg ville godt igennem det med DTD for at finde ud af hvordan det fungerer. Mit eksempel er vel egentlig en oplagt mulighed, og burde være simpelt. Det svarer til at elementet head kan indeholde title, link, script og meta men at rækkefølgen er underordnet (hvad den vist ikke helt er alligevel...)
A | B Either A or B must occur, but not both. A , B Both A and B must occur, in that order. A & B Both A and B must occur, in any order.
Så her nævnes altså det jeg var ude efter (A & B) - det er til gengæld ikke nævnt på w3school og heller ikke i den XML guide jeg sidder med (Elizabeth Castro: "XML til WWW"), så gad vist om det dur?
Jeg kan desværre ikke hjælpe så meget med DTD, da jeg ikke har brugt dem til så meget. Jeg foretrækker selv schemas - bl.a. fordi de giver mig en dejlig, lettilgængelig måde at validere de ændringer i data, brugeren evt. kunne tænkes at ville foretage.
Jeg har bl.a. lavet nogle datagrids og flexigrids, som de kendes fra VB og ASP.NET, men som kan bruges i alle server-miljøer. Her kan jeg downe hele DB-tabeller - eller dele deraf - og præsentere dem for brugeren, der kan rette og rename så tosset, hun vil. Alle data-ændringer bliver checket og godkendt/afvist på baggrund af et schema-kald i DOM eller X-Paths. DB'en kan så enten opdateres løbende via XMLhttp-requests - eller man venter til sidst og opdaterer DB'en med et 'Save' kald. ... 'PHP.NET' ;oD
må indrømme at dtd'er ikke er min sterke side. er, på samme måde som olebole, mere til schemas. Mit bud var mere et hint i, forhåbentlig, rigtig retning. jeg synes dtd'er er uoverskuelige og bryder med hele bagtanken med XML, at det skal være let forståeligt og "menneskeligt lesbart" - noget man ikke kan sige dtd'er er.
nute> skal vi ikke bare gå ud fra at olebole tager det stille og roligt med points siden han ikke har svaret (ellers får han bare flere næste gang han hjælper mig ;-) //mik
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.