Avatar billede limes_planum Praktikant
02. maj 2007 - 18:19 Der er 6 kommentarer og
1 løsning

Forkert reaktion på indskrænkning

Hej
Jeg får en forkert reaktion på disse koder. Henholdsvis .xml-fil:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE tag SYSTEM "http://www.xxxxx.com/xml/xml_laere/code.dtd">
<population year="1998">445</population>

- og dens code.dtd, som jeg har lagt ind i samme web-folder:

<!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA #FIXED "1999">

Når jeg kører xml-filen kommer der ikke en fejlmeddelse som den (desværre) 6-7 år gamle XML-bog jeg bruger, ellers forklarer vil ske. I følge den burde min '#FIXED'-erklæring indskrænke værdien til kun at kunne være: 1999.

Hvor er fejlen? Kan det være fordi min bog for gammel, og der er kommet en ny standard inde på www.w3.org?? (har dog prøvet at læse mig til det derinde :-S uden held...)
Avatar billede arne_v Ekspert
02. maj 2007 - 18:43 #1
Hvordan parser du XML filen ?
Avatar billede limes_planum Praktikant
03. maj 2007 - 11:05 #2
Rart at høre fra netop dig Arne_v, da jeg faktisk var inde og læse en generel 5-points-forklaring du havde skrevet om XML. Jeg er ret ny i XML og prøver stadig at få en aha-oplevelse mht. dets anvendelse. Hvis du kan henvise til et konkret eksempel, hvor man ikke har kunnet leve uden, ville det sikkert være uvurderligt for mange XML-begyndere herinde.

Men tilbage til spørgsmålet - og her kommer det ind, at jeg er ny i XML - betyder "parse" her at "afvikle"?
- For når jeg skriver 'kører', henviser jeg til at have kørt scriptet i explorer. Det vil hjælpe mig meget forståelsesmæssigt, hvis jeg skal fortolke xml-delen gennem PHP eller Actionscript, da koden alene i explorer ser ret ubehjælpsomt ud:

<?xml version="1.0" standalone="no" ?>
  <!DOCTYPE tag (View Source for full doctype...)>
  <population year="1998">445</population>

NB.: Lærebogen jeg bruger fungerede i explorer, mht. entiteter; &amp; - &lt; osv.
Avatar billede arne_v Ekspert
04. maj 2007 - 04:34 #3
Hverken IE eller FF giver fejl på den.

Men XMLSPy giver en fejl som den skal.

Browserne er tilsyneladende ikke så kræsne.

Det understreges af at:

<!DOCTYPE tag SYSTEM "http://www.xxxxx.com/xml/xml_laere/code.dtd">

skal være:

<!DOCTYPE population SYSTEM "http://www.xxxxx.com/xml/xml_laere/code.dtd">

Den giver de heller ikke fejl på.

Jeg synes at du skal finde dig et XML værktøj, som er lidt bedre end browserne.

Gratis udgaven af XMLSpy.

Eller en ganske almindelig editor som JEdit med XML plugin. Den kan også finde
begge fejlene !
Avatar billede limes_planum Praktikant
06. maj 2007 - 16:56 #4
Ok fik installeret JEdit med alt det tilhørende Java - so far so good - men hvilket XML-plugin skal jeg så bruge for at compile/parse min code?
Plugin'et der bare hedder "XML" har ikke nogen direkte (så vidt jeg kan se) compiler.
XLST-plugin'et med dets underpunkt XPATH 1.0 tool, giver mig nogle svar og ser ud til at virke som en compiler. Jeg har derefter rettet udfra dets anvisninger om "tag" og "population". Problemet kommer så bare nu, hvor den punkt:
1) Forklarer mig at "population" lige pludselig ikke er 'declared'
2) Ikke forklarer mig at der en fejl med 'year' der skulle være #fixed til at være 1999 i .dtd-en, men er sat til at være 1998 i .xml-en
Avatar billede arne_v Ekspert
06. maj 2007 - 17:36 #5
jeg bruger bare XML plugin

den laver en rød streg under fejl og når man flytter curser hen på det så
skriver den hvad problemet er
Avatar billede limes_planum Praktikant
07. maj 2007 - 20:33 #6
Ja - har set de røde streger og tilhørende 'rollover-småalerts', de kan helt sikkert bruges til noget. Kan de også gå ind og kontrollere den eksterne DTD's '#FIXED'-erklæring, uden at der foregår en parsing/compiling?
Jeg tror jeg går videre til næste kapitel i min lærebog, og håber på det bedste.

Du skal i hvert fald have tak for al den hjælp med software, småfejl etc., så hvis du lægger et svar vil jeg mene at 80 point er rimeligt :-)
Avatar billede arne_v Ekspert
08. maj 2007 - 02:19 #7
Den parser når den læser filen ind eller man gemmer.

Ja den kan også bruge eksterne DTD'er.

Og svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester