在XML的属性名称中转义正斜杠

时间:2017-05-18 20:12:15

标签: java xml xml-parsing jaxb apache-camel

我在操作之前将XML String转换为Document。我从第三方API收到XML。

这是我的XML

<Student full/part="part" name="Some Name" dob="2000-08-01" totalMarks="565" science="9" maths="8" registration="987654"  class="distinction" />

这是我得到的例外

org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: org.w3c.dom.Document with value  due org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 64; Attribute name "full" associated with an element type "Student" must be followed by the ' = ' character.

现在我没有定义,只是从这个XML中检索属性值。即明天这个元素类型可能是来自学生的老师,但我只是将注册,类甚至“完整/部分”等属性的值放在一起。

我想知道org.w3c.dom.Document在给定元素类型的XML属性名称中容忍这个正斜杠。

1 个答案:

答案 0 :(得分:4)

XML name(或XML attribute)的element

  

[5] Name ::= NameStartChar (NameChar)*

不能包含/字符:

  

[4] 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]

     

[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

除此之外没有任何逃避机制。