[XML/XSD] XHTML Namespace binnen eigen ns*

Pagina: 1
Acties:

  • Marten
  • Registratie: Juli 2001
  • Laatst online: 15-08-2025
Ik ben bezig XML/XSD/XSLT te leren en nu loop ik tegen het volgende aan:

Ik heb de volgende except van mijn XSD Schema:
Afbeeldingslocatie: http://www.tweakers.net/ext/f/10868/full.gif
Nou wil ik weten hoe ik het voor elkaar krijg om binnen deze <body> standaard XHTML toe te staan, uitgebreid met wat eigen tags als bv. <columnize> om een stuk met twee kolommen te krijgen. Nou valt dit natuurlijk als volgt te regelen:
code:
1
2
3
4
<body>
  <h1 xmlns="http://www.w3.org/1999/xhtml">Informatie</h1>
  <p xmlns="http://www.w3.org/1999/xhtml">Back to XHTML here.</p>
</body>

Maar ik vind het niet echt handig telkens die xmlns erbij te moeten hebben. Kan dit niet handiger?

[ Voor 42% gewijzigd door whoami op 21-09-2003 14:30 . Reden: Titel vergeten ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zou je een wat duidelijkere topictitel willen formuleren? Dan pas ik 'm wel aan

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Marten
  • Registratie: Juli 2001
  • Laatst online: 15-08-2025
.oisyn schreef op 21 September 2003 @ 14:25:
Zou je een wat duidelijkere topictitel willen formuleren? Dan pas ik 'm wel aan
Sorry, was hem vergeten nog erbij te zetten. Meestal maak ik eerst het topic, en dan de titel, en als ik het dan vergeet staat er nog niets, en heeft de server het wel door... Zie mn edit hierboven.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het enige wat je kan doen is de default namespaces declaratie ( xmlns= ) omhoog halen. Je moet dan echter wel aangeven dat "body" juist weer niet in die namespace valt. Dit kan je doen met een namespace prefix.

code:
1
2
3
4
5
6
<blaat xmlns:foo="whatever" xmlns="whatever">
  <foo:body xmlns="http://www.w3.org/1999/xhtml">
    <h1>Informatie</h1>
    <p>Back to XHTML here.</p>
  </foo:body>
</blaat>

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Marten
  • Registratie: Juli 2001
  • Laatst online: 15-08-2025
mbravenboer schreef op 21 September 2003 @ 14:29:
Het enige wat je kan doen is de default namespaces declaratie ( xmlns= ) omhoog halen. Je moet dan echter wel aangeven dat "body" juist weer niet in die namespace valt. Dit kan je doen met een namespace prefix.

code:
1
2
3
4
5
6
<blaat xmlns:foo="whatever" xmlns="whatever">
  <foo:body xmlns="http://www.w3.org/1999/xhtml">
    <h1>Informatie</h1>
    <p>Back to XHTML here.</p>
  </foo:body>
</blaat>
Ik kan het dus niet zo krijgen dat de parser/validator gewoon eerst controleert of een tag in mijn schema gedefineerd is, en zo niet, dat hij dan in XHTML DTD moet staan?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Uh ... dat is weer een heel ander probleem. Je eerst vraag ging over XML namespace notatie.

Dit gaat over het valideren van een XML taal wat delen van XHTML schemas hergebruikt. Het is dan natuurlijk wel belangrijk om te weten welke xml schema taal je gebruikt. Je spreekt hier over een DTD, maar in je topic titel staat weer XSD (wat op W3C XML Schema zou duiden).

Ik zou DTDs liever niet meer gebruiken. Je kan W3C XML Schema gebruiken, waarbij je dan de XHTML Modularizatie kan hergebruiken [1].

Nog makkelijker is het echter om RELAX NG te gebruiken. James Clark heeft een verzameling RELAX NG modules [2] voor XHTML gemaakt. RELAX NG modules voor XHTML 2.0 zijn nu ook al beschikbaar in RELAX NG, geschreven door het W3C zelf :D .

[1] http://www.xml.com/pub/a/2001/05/02/xhtmlm12n.html
[2] http://www.thaiopensource.com/relaxng/xhtml/

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Marten
  • Registratie: Juli 2001
  • Laatst online: 15-08-2025
Ik zal het hele verhaal vertellen: Ik ben bezig met een XML Schema (XSD) voor een website. De XML pagina's waarvoor deze XSD is gaan via een XSLT transformation omgezet worden naar puur XHTML voor de sitebezoeker.

Van de basis XML pagina (dus voor de XSLT transformatie) ligt een deel vast in mijn XSD. Dat zijn de delen die de menu's vormen etc... In een ander deel (bijv. die <body> tag die de hoofdtekst van de pagina gaat vormen) moet het mogelijk zijn om standaard XHTML in te voeren. Daarnaast moet het mogelijk zijn om bijv. die <columnize> tag te gebruiken, die ik met de XSLT wil omzetten naar een twee-koloms weergave in XHTML (met behulp van CSS natuurlijk, geen tabellen :)). Ook wil ik eigenlijk de mogelijkheid open houden om de definitie van bepaalde tags in XHTML aan te passen, dan wel sommige attributen fixed te zetten. Ik hoop dat het nu duidelijk is wat ik precies wil.

Nou kon ik van XHTML alleen maar een DTD vinden, en geen XML Schema. Klopt dit? Het is me te laat om nog die sites door te nemen, dat zal ik morgen doen. Als mijn vraag op die sites beantwoord wordt hoef je van mij hierop niet te antwoorden, dan edit ik morgen mijn post wel.
Pagina: 1