writing JavaDoc-> Re: RFR: 8046443 : A few typos in JAXP JavaDoc (original) (raw)

huizhe wang huizhe.wang at oracle.com
Wed Jun 18 16:34:45 UTC 2014


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

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

block, so no content will be outside of the block. (the block tags will be in Description List
by the way). In Doc Comments, a

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

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

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

, closing tag makes it clear where exactly it would be applied --

it's content inside paragraphs, not the whole . If there's anything "slipped" outside of the P tags, it would be an error. If content slips outside of a

element, it's indeed an error. (*1)

But it's almost impossible for this to happen if you omit the

end
tag. If one doesn't use

end tags, the

element can only be

implicitly closed by a) closing its enclosing element, e.g.,
; or
b) by starting a new block-level element such as a
,

, etc.,

or another

element. With this approach the text is always (*2)

going to be within some block-level element. By contrast, if one were to use

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

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 but before the first

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

before

.

*

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:

* * com.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 * *

This workaround was inspired by classes in the

javax.management * package, e.g. ObjectName, etc.

Note that the text enclosed in the 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 is an inline element and can appear within a

or other block element. Unlike block elements, an inline

element doesn't implicitly close a

element. The author might have

thought that 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 to be enclosed within a block element, such as

,

, or
.
with css, 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 text differently within

elements from

text within
 elements. But these declarations would miss
the 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

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

end tags.
But if you're writing new javadoc, I recommend that you not use

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. s'marks P.S. Note that the start tag for the element is optional and is implied by context. haha, 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,

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

blah

blocks was needed and just use

Best Lance On Jun 11, 2014, at 1:20 PM, huizhe wang <huizhe.wang at oracle.com_ _huizhe.wang at 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

Guide[1] for JavaDoc Tool suggests using

to separate paragraphs:

If you have more than one paragraph in the doc comment, separate the paragraphs with a |

|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.wang at oracle.com_ _huizhe.wang at 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

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.Andersen at oracle.com Lance.Andersen at 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.Andersen at oracle.com Lance.Andersen at oracle.com>



More information about the core-libs-dev mailing list