Thanks Stuart for the good discussion. It reminds us that optional tags
may be not optional since we're writing Doc Comments that will become
part of the spec and affect overall look of it.
The issues you pointed out below may be true generally when writing <p>
tag in a html file. However, we're talking about the JavaDoc here. The
Doc Comments consist of two parts: a description followed by block tags.
The JavaDoc tool will put the description in a <div> block, so no
content will be outside of the block. (the block tags will be in
Description List <dl> by the way). In Doc Comments, a <p> tag serves
only to separate paragraphs.
As for clutter, you probably hate xml then :-) I consider html tags are
generally short and tidy. But again, it's preference, if no </p> is the
norm, I'll do the same.
-Joe
On 6/17/2014 3:38 PM, Stuart Marks wrote:
On 6/16/14 9:33 PM, huizhe wang wrote:
It's not xhmtl, but I would think closing tags is a good practice. Being
explicit is always a good thing to do.
Being explicit sounds good, but in this case it leads to errors; see
below.
The problem with using the </p> end tag is that it's easy for
additional
textual content to slip in afterward. This text would end up as part
of the
parent element. This might result in its being styled incorrectly or
otherwise
treated inconsistently with the rest of the text.
That seems to be an argument for a closing tag. When a style is
specified for
<p>, closing tag makes it clear where exactly it would be applied --
it's
content inside paragraphs, not the whole <body>. If there's anything
"slipped"
outside of the P tags, it would be an error.
If content slips outside of a <p> element, it's indeed an error. (*1)
But it's almost impossible for this to happen if you omit the </p> end
tag. If one doesn't use </p> end tags, the <p> element can only be
implicitly closed by a) closing its enclosing element, e.g., <div>; or
b) by starting a new block-level element such as a <div>, <h1>, etc.,
or another <p> element. With this approach the text is always (*2)
going to be within some block-level element.
By contrast, if one were to use </p> end tags, there is the
possibility between every paragraph for text to appear, which means
that it would be outside of any paragraph element. The use of </p> end
tags creates this possibility, and thus this increases the possibility
of error.
*1 - not an error in the sense of being a syntax error, or one that
javadoc would warn or raise an error about, but a semantic error in
that text would occur in an inappropriate place in the document
structure.
*2 - well, not always. It's possible for text to be outside of any
block element at the very beginning of the element, such as after
<body> but before the first <p> or other block-level element.
For example, I happened to notice the following in one of the files
in the
patch, jaxp/src/javax/xml/namespace/QName.java:
In this example, I think it was intentional by the author to add the
closing tag
to separate the paragraphs, otherwise he would have to add another
<p> before
<code>.
* <p>To workaround this issue, serialVersionUID is set with either
* a default value or a compatibility value. To use the
* compatibility value, set the system property:</p>
*
*
<code>com.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0</code>
*
* <p>This workaround was inspired by classes in the
javax.management
* package, e.g. ObjectName, etc.
Note that the text enclosed in the <code> element is outside of any
paragraph.
If the style sheet were to have a distinct style for code appearing
within a
paragraph, that style wouldn't apply to the text in this example.
I'm not sure what the author's intent was, but it looks like a mistake
to me. The problem is that <code> is an inline element and can appear
within a <p> or other block element. Unlike block elements, an inline
element doesn't implicitly close a <p> element. The author might have
thought that <code> itself was a block element and thus didn't need to
be enclosed by a block element, but this isn't the case.
What's probably necessary here is for the text within <code> to be
enclosed within a block element, such as <p>, <blockquote>, or <pre>.
with css, <code> would have its own style.
It does, but it's possible for the style sheet to have styles for
descendant (enclosed) elements, or for styles to inherit properties
from enclosing elements. For example, a style sheet might have these
declarations:
p code { blag bleg blig; }
pre code { bazz bizz buzz; }
This would style <code> text differently within <p> elements from
<code> text within <pre> elements. But these declarations would miss
the <code> text from
QName.java, because it doesn't occur within these elements.
* * *
Now, this really is moot, since the offending example is on a private
field that will almost never get rendered, the stylesheet doesn't in
fact use that style of CSS selector, and the prevailing style of the
javadoc in this area is to use </p> end tags. It's probably not worth
it to go in and remove all the end tags, and it's certainly not worth
it if we're taking code from upstream somewhere that is already
marked-up this way. So don't consider this to be a proposal or an
exhortation to clean out all the </p> end tags.
But if you're writing new javadoc, I recommend that you not use </p>
end tags.
(Also, as Roger pointed out, they add clutter.)
s'marks
It turns out that this text is from a private field in the QName class
(serialVersionUID) so it's usually not rendered anyway, but I'd
guess that
there are other places where text has accidentally ended up outside of
paragraph elements because a paragraph end tag was used and a
paragraph start
tag (or block start tag) was missing.
</pedantry>
s'marks
P.S. Note that the start tag for the <pedantry> element is optional
and is
implied by context.
haha, <pedantry> can be put to good use in our writings :-)
-Joe
On 6/11/14 10:49 AM, huizhe wang wrote:
And, here is a good discussion on closing tags:
http://webdesign.about.com/od/htmltags/qt/optional-html-end-tags-when-to-include-them.htm
-Joe
On 6/11/2014 10:24 AM, Lance Andersen wrote:
Hi Joe,
</p> is what I am talking about.
On the myriad of clean-ups that were needed to be done in JDBC,
getting rid of
these type of <p>blah</p> blocks was needed and just use <p>
Best
Lance
On Jun 11, 2014, at 1:20 PM, huizhe wang <huizhe.w...@oracle.com
<mailto:huizhe.w...@oracle.com>> wrote:
On 6/11/2014 9:48 AM, Lance Andersen wrote:
Hi Joe,
please change
dont
to
don't
Oops, I committed too quickly. But this is a dev comment, so we
can fix that
in the next patch.
I would get rid of the <p></p>
Guide[1] for JavaDoc Tool suggests using <p> to separate paragraphs:
If you have more than one paragraph in the doc comment, separate the
paragraphs with a |<p>|paragraph tag, as shown.
[1]
http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html
-Joe
otherwise it is OK
Best
Lance
On Jun 11, 2014, at 11:54 AM, huizhe wang <huizhe.w...@oracle.com
<mailto:huizhe.w...@oracle.com>> wrote:
Fix some typos in the JAXP documentation. Please review.
http://cr.openjdk.java.net/~joehw/jdk9/8046443/webrev/
<http://cr.openjdk.java.net/%7Ejoehw/jdk9/8046443/webrev/>
Thanks,
Joe
<Mail Attachment.gif>
Lance Andersen| Principal Member of Technical Staff |
+1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
<http://oracle.com/us/design/oracle-email-sig-198324.gif>lance.ander...@oracle.com
<mailto:lance.ander...@oracle.com>
Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
<http://oracle.com/us/design/oracle-email-sig-198324.gif>lance.ander...@oracle.com
<mailto:lance.ander...@oracle.com>