Multiple Elements

  • Thread starter Michael.Ruehling
  • Start date
M

Michael.Ruehling

Hi,
I've got another question.
My Code works fine now and I've tried some other functions.
XSLT-Code is now:


<!DOCTYPE BUCH [
<!ELEMENT BUCH (KAPITEL)+>
<!ELEMENT KAPITEL (UEBERSCHRIFT*, ZWISCHENUEBERSCHRIFT*,
TEXT*)>
<!ELEMENT UEBERSCHRIFT (#PCDATA)>
<!ELEMENT ZWISCHENUEBERSCHRIFT (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>
] >

Like on the Book the MULTIPLE says "Allow Multiple Tags of this".
But IE6 &NE7 &MOZ doesn't show Multiple Lines. They only show ONE
Sub-Tag (the Content) per KAPITEL. They do show multiple KAPITEL.
Does anyone know why?


M.
 
J

Joe Fawcett

Hi,
I've got another question.
My Code works fine now and I've tried some other functions.
XSLT-Code is now:


<!DOCTYPE BUCH [
<!ELEMENT BUCH (KAPITEL)+>
<!ELEMENT KAPITEL (UEBERSCHRIFT*, ZWISCHENUEBERSCHRIFT*,
TEXT*)>
<!ELEMENT UEBERSCHRIFT (#PCDATA)>
<!ELEMENT ZWISCHENUEBERSCHRIFT (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>
] >

Like on the Book the MULTIPLE says "Allow Multiple Tags of this".
But IE6 &NE7 &MOZ doesn't show Multiple Lines. They only show ONE
Sub-Tag (the Content) per KAPITEL. They do show multiple KAPITEL.
Does anyone know why?


M.
If the DOCTYPE is for BUCH you can only have one BUCH element otherwise the
XML would not be a well-formed document, it would be a fragment. The +
applies to the KAPITEL elements.
 
D

David Carlisle

Hi,
I've got another question.
My Code works fine now and I've tried some other functions.
XSLT-Code is now:


<!DOCTYPE BUCH [

That's the dtd not the XSLT, but I assume the xslt is similar to the
code posted in the earlier thread.

<H3>
<xsl:value-of select="ZWISCHENUEBERSCHRIFT"/>
</H3>


the select="ZWISCHENUEBERSCHRIFT" does select all those elements but
value-of (in xslt 1) just gives the string value of the first.

When rendering a document structure to html as here normally you dont
want to use for-each and value-of at all, but rather apply-templates, so
that the output structure mirrors the input structure.

so you don't need a template matching BUCH as you want the default
processing there


but you do want something like

<xsl:template match="UEBERSCHRIFT">
<h1>
<xsl:apply-templates/>
<h1>
</xsl:template>


<xsl:template match="ZWISCHENUEBERSCHRIFT">
<h3>
<xsl:apply-templates/>
<h3>
</xsl:template>


<xsl:template match="TEXT">
<p>
<xsl:apply-templates/>
<p>
</xsl:template>

David
 
M

Michael.Ruehling

Hi,
I am sorry for not beeing totally precise.
The BUCH or KAPITEL function works fine. What
makes the problem ist the UEBERSCHRIFT-thing.

XSLT-Code says UEBERSCHRIFT can be more than one
(the reference part of my book says so). And I want
to have more than one UEBERSCHRIFT in one KAPITEL.
Even more than one ZWISCHENUEBERSCHRIFT and TEXT.
I don't want to have only one UEBERSCHRIFT and ZWISCHENUEBERSCHRIFT
and TEXT Part in my KAPITEL, because, it makes no sense
to have an extra KAPITEL for a short TEXT which belongs to a
UEBERSCHRIFT.

M.


Hi,
I've got another question.
My Code works fine now and I've tried some other functions.
XSLT-Code is now:


<!DOCTYPE BUCH [

That's the dtd not the XSLT, but I assume the xslt is similar to the
code posted in the earlier thread.

<H3>
<xsl:value-of select="ZWISCHENUEBERSCHRIFT"/>
</H3>


the select="ZWISCHENUEBERSCHRIFT" does select all those elements but
value-of (in xslt 1) just gives the string value of the first.

When rendering a document structure to html as here normally you dont
want to use for-each and value-of at all, but rather apply-templates, so
that the output structure mirrors the input structure.

so you don't need a template matching BUCH as you want the default
processing there


but you do want something like

<xsl:template match="UEBERSCHRIFT">
<h1>
<xsl:apply-templates/>
<h1>
</xsl:template>


<xsl:template match="ZWISCHENUEBERSCHRIFT">
<h3>
<xsl:apply-templates/>
<h3>
</xsl:template>


<xsl:template match="TEXT">
<p>
<xsl:apply-templates/>
<p>
</xsl:template>

David
 
P

Peter Flynn

Hi,
I am sorry for not beeing totally precise.
The BUCH or KAPITEL function works fine. What
makes the problem ist the UEBERSCHRIFT-thing.

XSLT-Code says UEBERSCHRIFT can be more than one
(the reference part of my book says so). And I want
to have more than one UEBERSCHRIFT in one KAPITEL.
Even more than one ZWISCHENUEBERSCHRIFT and TEXT.
I don't want to have only one UEBERSCHRIFT and ZWISCHENUEBERSCHRIFT
and TEXT Part in my KAPITEL, because, it makes no sense
to have an extra KAPITEL for a short TEXT which belongs to a
UEBERSCHRIFT.

Yes, it is possible (but unusual) to have more than one ueberschrift
in a chapter.

I think you may be confusing the ueberschrift with the concept of a
container like <section> or <subsection>. XML is normally built on a
hierarchical model or containers, unlike (eg) LaTeX, where headings
are simply interruptions to the flow of text (eg \section{}, not
\begin{section}...\end{section}).

<!DOCTYPE buch [
<!ELEMENT buch (kapitel)+>
<!ELEMENT kapitel (ueberschrift,text+,unterkapitel*)>
<!ELEMENT ueberschrift (#PCDATA)>
<!ELEMENT unterkapitel (ueberschrift,text+)>
<!ELEMENT text (#PCDATA)>
]>
<buch>
<kapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
</kapitel>
<kapitel>
<ueberschrift></ueberschrift>
<text></text>
</kapitel>
</buch>

///Peter
 
M

Michael Rühling

Hi,
this seems to be the right way, I suppose and therefore
I will try this as soons as possible. And furthermore if
this works for me, I will try to understand it.


thanx
M.

Peter said:
Hi,
I am sorry for not beeing totally precise.
The BUCH or KAPITEL function works fine. What
makes the problem ist the UEBERSCHRIFT-thing.

XSLT-Code says UEBERSCHRIFT can be more than one
(the reference part of my book says so). And I want
to have more than one UEBERSCHRIFT in one KAPITEL.
Even more than one ZWISCHENUEBERSCHRIFT and TEXT.
I don't want to have only one UEBERSCHRIFT and ZWISCHENUEBERSCHRIFT
and TEXT Part in my KAPITEL, because, it makes no sense
to have an extra KAPITEL for a short TEXT which belongs to a
UEBERSCHRIFT.

Yes, it is possible (but unusual) to have more than one ueberschrift
in a chapter.

I think you may be confusing the ueberschrift with the concept of a
container like <section> or <subsection>. XML is normally built on a
hierarchical model or containers, unlike (eg) LaTeX, where headings
are simply interruptions to the flow of text (eg \section{}, not
\begin{section}...\end{section}).

<!DOCTYPE buch [
<!ELEMENT buch (kapitel)+>
<!ELEMENT kapitel (ueberschrift,text+,unterkapitel*)>
<!ELEMENT ueberschrift (#PCDATA)>
<!ELEMENT unterkapitel (ueberschrift,text+)>
<!ELEMENT text (#PCDATA)>
]>
<buch>
<kapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
<unterkapitel>
<ueberschrift></ueberschrift>
<text></text>
<text></text>
<text></text>
</unterkapitel>
</kapitel>
<kapitel>
<ueberschrift></ueberschrift>
<text></text>
</kapitel>
</buch>

///Peter
 
M

Michael Rühling

Hi,
sorry but this doesn't work for me. But with a little
brainstorming this code works for me (together with the
XSLT-Code):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="test10.xsl" type="text/xsl"?>
<!DOCTYPE BUCH [<!ELEMENT BUCH (KAPITEL)+>
<!ELEMENT KAPITEL (UEBERSCHRIFT, UNTERKAPITEL*)*>
<!ELEMENT UEBERSCHRIFT (#PCDATA)>
<!ELEMENT UNTERKAPITEL (ZWISCHENUEBERSCHRIFT,POINT,TEXT)*>
<!ELEMENT POINT (#PCDATA)>
<!ELEMENT ZWISCHENUEBERSCHRIFT (#PCDATA)>
<!ELEMENT TEXT (#PCDATA)>] >

XSLT-Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:eek:utput method="html"></xsl:eek:utput>
<xsl:template match="BUCH">
<xsl:for-each select="KAPITEL">
<H1>
<xsl:value-of select="UEBERSCHRIFT"></xsl:value-of>
</H1>
<xsl:for-each select="UNTERKAPITEL">
<H3>
<xsl:value-of select="ZWISCHENUEBERSCHRIFT"></xsl:value-of>
</H3>
<H4>
<xsl:value-of select="POINT"></xsl:value-of>
</H4>
<P>
<xsl:value-of select="TEXT"></xsl:value-of>
</P>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

thanx for alle the hints

M.
Michael said:
Hi,
this seems to be the right way, I suppose and therefore
I will try this as soons as possible. And furthermore if
this works for me, I will try to understand it.


thanx
M.

Peter said:
Hi,
I am sorry for not beeing totally precise.
The BUCH or KAPITEL function works fine. What makes the problem ist
the UEBERSCHRIFT-thing.

XSLT-Code says UEBERSCHRIFT can be more than one (the reference part
of my book says so). And I want to have more than one UEBERSCHRIFT in
one KAPITEL. Even more than one ZWISCHENUEBERSCHRIFT and TEXT.
I don't want to have only one UEBERSCHRIFT and ZWISCHENUEBERSCHRIFT
and TEXT Part in my KAPITEL, because, it makes no sense to have an
extra KAPITEL for a short TEXT which belongs to a UEBERSCHRIFT.

Yes, it is possible (but unusual) to have more than one ueberschrift
in a chapter.

I think you may be confusing the ueberschrift with the concept of a
container like <section> or <subsection>. XML is normally built on a
hierarchical model or containers, unlike (eg) LaTeX, where headings
are simply interruptions to the flow of text (eg \section{}, not
\begin{section}...\end{section}).

<!DOCTYPE buch [
<!ELEMENT buch (kapitel)+>
<!ELEMENT kapitel (ueberschrift,text+,unterkapitel*)>
<!ELEMENT ueberschrift (#PCDATA)>
<!ELEMENT unterkapitel (ueberschrift,text+)>
<!ELEMENT text (#PCDATA)>
]>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,141
Latest member
BlissKeto
Top