自定义Taglib编译错误

时间:2012-07-29 11:05:26

标签: jsp jsp-tags taglib

我正在尝试为自定义标记创建一个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'.

我无法弄清问题在哪里。

3 个答案:

答案 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>
相关问题