RFR: 8046443 : A few typos in JAXP JavaDoc

Stuart Marks stuart.marks at oracle.com
Tue Jun 17 22:38:49 UTC 2014


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



More information about the core-libs-dev mailing list