我正在尝试为自定义标记创建一个taglib。但是我在Eclipse IDE中遇到了编译错误。这是我的TagLib描述:
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
<tlib-version>1.0</tlib-version>
<uri>MyFunction</uri>
<function>
<name>myFunc</name>
<function-class>com.tldcls.MyClass</function-class>
<function-signature>int age()</function-signature>
</function>
</taglib>
我在标签上遇到编译错误。错误告诉:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'uri'.
我无法弄清问题在哪里。
答案 0 :(得分:5)
文件中提到的XSD(http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd)显示taglib元素按此顺序具有以下子元素
tlib-version
short-name
uri
short-name
不是可选的,它应该是用于此taglib的建议前缀。
答案 1 :(得分:0)
存在XSD版本错误。
你可以使用 xsi:schemaLocation =“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd”。
答案 2 :(得分:0)
uri的架构定义指向&#34; anyURI&#34;型,
https://www.w3.org/TR/xmlschema-2/#anyURI
这是指XLink href属性,后者又引用RFC 2396,后者反过来说URI看起来如下,
<scheme>:<scheme-specific-part>