Spring文档说id
属性允许您指定一个id。通常,这些名称是字母数字(' myBean',' fooService'等),但也可能包含特殊字符。我想知道哪些特殊字符可以包含该属性。感谢。
答案 0 :(得分:0)
Just read the docs thoroughly:
但是,XML规范确实限制了字符 在XML ids中合法。这通常不是约束,但如果您需要 使用这些特殊的XML字符之一,或者想要介绍其他 bean的别名,你也可以在name属性中指定它们, 用逗号(,),分号(;)或空格分隔。
所以基本上你可以使用几乎任何字符,只要它是html entity,但如果你这样做,你应该提供别名。
另请参阅有关XML属性值的其他信息:
http://www.w3schools.com/xml/xml_attributes.asp
答案 1 :(得分:0)
在spring beans schema中,您可以发现该名称为xsd:string且ID为xsd:id。 xsd:id数据类型限制引用xsd:NCName的XML NCName,另请参阅here。
name属性是一个xs:string,因此它可以包含任何有效xml字符的字符,空格保留原样。
字符串的值空间是一组零个或多个字符的有限长度序列(如[XML]中所定义),它们匹配来自[XML]的字符集。
因此,Spring Beans name属性中允许的字符应该是Char production from the XML spec。
的字符xsd:id也是一个xsd:string,但也是一个xsd:token,因此空格是折叠的,也是一个xsd:Name,一个xsd:NCName,所以跟在XML NCName rules
之后NCName :: = NCNameStartChar NCNameChar * / *一个XML名称,减去“:”* /
Spring Beans的id属性或类型为xsd:id的任何属性都有空格折叠且必须: