Is an xml attribute without a value, valid?

25,580

Solution 1

An attribute must be specified with the following syntax:

Name Eq AttValue

where Name is a legal XML name, Eq is = optionally preceded or followed by whitespace, and AttValue is a legal attribute value.

This definition is true for both XML 1.0 and XML 1.1.

If you are trying to specify an attribute as below:

<car owned/>

then no, that is not valid. If you are trying to specify it this way:

<car owned=""/>

then yes, that is valid.

Solution 2

No.

Boolean attributes in XML are of the form foo="foo".

Even in SGML, you must provide the value, (it is the name, = and quotes that you can omit, which is why you have things like <select multiple> in HTML).

Solution 3

You can have an attribute whose only permitted value is the empty string, "". I'm not sure it's good design, though; I would normally suggest a boolean attribute with values true/false, and a default value of false.

Share:
25,580
Admin
Author by

Admin

Updated on August 01, 2022

Comments

  • Admin
    Admin almost 2 years

    I want to have an XML attribute without any value, which simply has one meaning when it exists or does not exist.

    Is that valid?

  • Quentin
    Quentin almost 13 years
    An empty string is still a value though.
  • Piotr Dobrogost
    Piotr Dobrogost almost 6 years
    I have hard time parsing your remark about attribute's value being required in SGML followed by example where the value is omitted. As to where do HTML attributes without value come from; Authors should be aware that many user agents only recognize the minimized form of boolean attributes and not the full form. For instance, authors may want to specify: <OPTION selected> instead of <OPTION selected="selected">w3.org/TR/html4/appendix/notes.html#sgmlfeatures
  • Quentin
    Quentin almost 6 years
    @PiotrDobrogost — In the example you give, selected is the value not the name of the attribute (HTML happens to only use values which are the same as the name for boolean attributes).
  • Michael Kay
    Michael Kay about 4 years
    My answer has been downvoted presumably because people think I interpreted the question incorrectly. They may be right. Interpreting unclear questions is a bit of an art form, and we sometimes get it right and sometimes not. A comment on the answer is more helpful than an unexplained downvote.