Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB XJC-XPath计算结果是否为空目标节点?_Java_Xpath_Xsd_Jaxb_Xjc - Fatal编程技术网

Java JAXB XJC-XPath计算结果是否为空目标节点?

Java JAXB XJC-XPath计算结果是否为空目标节点?,java,xpath,xsd,jaxb,xjc,Java,Xpath,Xsd,Jaxb,Xjc,我有以下简单的XSD文档(foo.XSD): 我想提醒XJC JAXB编译器,“Height”元素应该通过使用外部绑定文件来使用类型安全的枚举类,如(foo.xjb): 但是当我运行命令“xjc-bfoo.xjbfoo.xsd”时,我得到以下错误: parsing a schema... [ERROR] XPath evaluation of "//xsd:element[@name='Height']/xsd:simpleType" results in empty target no

我有以下简单的XSD文档(
foo.XSD
):


我想提醒XJC JAXB编译器,“Height”元素应该通过使用外部绑定文件来使用类型安全的枚举类,如(
foo.xjb
):


但是当我运行命令“
xjc-bfoo.xjbfoo.xsd
”时,我得到以下错误:

parsing a schema...
[ERROR] XPath evaluation of "//xsd:element[@name='Height']/xsd:simpleType" results in empty target node
  line 6 of file:/Users/maerics/src/java/jaxb/foo.xjb

Failed to parse a schema.
XPath表达式在我看来很好,所以我猜有一些与XML名称空间相关的微妙问题?我尝试了使用(或不使用)默认名称空间、targetNamespace等的几种组合,但总是出现相同的错误。请注意,
xjc
会自动为XSD文件生成Java源代码,而不会像预期的那样生成外部绑定文件。类似地,在XSD文件中使用嵌入式绑定定义也可以正常工作

请注意,我在MacOS10.6.8上使用的是Java版本“1.6.026”和xjc版本“JDK6中的JAXB2.1.10”


有人能解释一下如何在不修改原始XSD的情况下实现这一目标吗?嘿,当你看到问题时,你会自责的:

在foo.xsd中,您有:

xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
在foo.xjb中,您有:

xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3c.org/2001/XMLSchema"

请注意“w3”与“w3c”。这两个属性需要精确匹配,然后XPath才能工作(否则,xjb中引用的名称空间与XSD中引用的XSD名称空间不同)。

Ha!谢谢你的那双眼睛;这就是我手工编写XML得到的结果,我想=)也有同样的问题,但是我的问题是xsd甚至没有声明为名称空间。DOH。