The document type declaration for root element type "config" must end with '>'.错误

本文分享了一次解决MyBatis XML配置文件中常见的DOCTYPED声明错误的经历,并指出大小写敏感问题导致的错误提示。

在mybatis xml 配置文件的一个错误。这个错误很常见。就是题目的提示

我的代码是这样的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE config 
public "-//mybatis.org//DTD Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<config>
	<enviroments default="development">
		<enviroment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
				<property name="url" value="jdbc:sqlserver://localhost:1079;databaseName=ghydb"/>
				<property name="username" value="sa" />
				<property name="password" value="" />
			</dataSource>
		</enviroment>
	</enviroments>
</config>

这个东西错误是

The document type declaration for root element type "config" must end with '>'.

我真的真的不知道这是啥bug。是不是eclipse瞎掉了。。。

可是后来找到一个可以用的xml发现了问题。。

我的

<!DOCTYPE config 
public "-//mybatis.org//DTD Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd"> 

这里的public是小写的。正确的是大写的。。居然报错是>不匹配。也是醉了。。估计是发现public不是一个该有的东西,认为这个是下一行的了。所以理所当然要结束没发现>就报错!!(⊙o⊙)…醉了醉了



再推荐一个入门的教程地址吧

http://www.cnblogs.com/wushiqi54719880/archive/2011/07/26/2117601.html

由于没有直接相关的引用内容,以下是一般性的分析。当遇到“the attribute name must be specified in the attribute -list declaration for element 'EMP'”这样的错误,通常是在 XML 或者某些标记语言环境中,在定义元素的属性列表时没有正确指定属性名称。 ### 可能的解决方案 #### XML 场景 在 XML 中,如果定义元素属性,需要遵循 XML 的语法规则。例如,使用 DTD(文档类型定义)或者 XML Schema 来定义元素和属性。 ##### DTD 示例 假设要为 `EMP` 元素定义一些属性,以下是一个简单的 DTD 示例: ```xml <!DOCTYPE root [ <!ELEMENT root (EMP+)> <!ELEMENT EMP EMP> <!ATTLIST EMP id CDATA #REQUIRED name CDATA #REQUIRED > ]> <root> <EMP id="1" name="John"> </EMP> </root> ``` 在这个示例中,为 `EMP` 元素定义了 `id` 和 `name` 两个属性,并且使用 `#REQUIRED` 表示这些属性是必须的。 ##### XML Schema 示例 ```xml <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="EMP" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> ``` 这里使用 XML Schema 为 `EMP` 元素定义了 `id` 和 `name` 属性,并且指定为必须属性。 #### 代码场景 如果是在代码中生成 XML 或者操作 XML 元素和属性,要确保在声明属性时正确指定属性名称。例如,在 Python 中使用 `xml.etree.ElementTree` 库: ```python import xml.etree.ElementTree as ET # 创建根元素 root = ET.Element('root') # 创建 EMP 元素 emp = ET.SubElement(root, 'EMP') # 设置属性 emp.set('id', '1') emp.set('name', 'John') # 生成 XML 字符串 xml_str = ET.tostring(root, encoding='unicode') print(xml_str) ``` ### 总结 要解决“the attribute name must be specified in the attribute -list declaration for element 'EMP'”错误,关键在于正确遵循 XML 或者相关标记语言的语法规则,在定义元素属性列表时明确指定属性名称,并且在使用时正确设置属性值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值