0

I need to have an XML with below tag

<Customer_In_Rental?>No</Customer_In_Rental?>

The ? is not accepted, hence I tried it like

<Customer_In_Rental&#63;>No</Customer_In_Rental&#63;>

the XML is not well-formed even after this.

How to use ? in my XML tag. Similarly, I need to use / also

<Four/Six>No</Four/Six>

any quick help is appreciated.

kjhughes
  • 106,133
  • 27
  • 181
  • 240
JBJ
  • 173
  • 1
  • 1
  • 15

1 Answers1

0

Neither ? nor / are allowed in XML tags per the W3C XML BNF for component names:

NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] |
                  [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] |
                  [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] |
                  [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |
                  [#x10000-#xEFFFF]
NameChar      ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] |
                  [#x203F-#x2040]
Name          ::= NameStartChar (NameChar)*

You'll have to find alternatives means of expressing your intent.

For ?, consider a Boolean or Predicate suffix, or simply omit and allow the name itself or a schema to communicate the boolean intent.

For /, consider - or _.

kjhughes
  • 106,133
  • 27
  • 181
  • 240
  • Thanks, I took the alternate means of having an attribute to have the special characters... – JBJ Jan 08 '20 at 09:16
  • @JBJ: How do you mean that you used attributes rather than elements to have special characters? Neither XML element nor XML attributes can include `?` or `/` characters in their *names*; both can include those characters in their *values*. – kjhughes Jan 08 '20 at 13:21
  • ``` No ``` – JBJ Jan 13 '20 at 08:53
  • @JBJ: Cool, but hopefully you didn't literally use a tag of `element` for your element. – kjhughes Jan 13 '20 at 13:13