问题标签 [qnames]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 创建没有 ns1、ns2、ns3 命名空间的soap请求
我正在实现一个 Web 服务客户端,它的请求应该是这样的,它适用于 soap-ui。
我需要添加一个身份验证标头,到目前为止我的工作如下,
这样我得到低于要求
我的问题是我应该怎么做才能获得工作请求?我想我需要删除ns1
andns2
命名空间。
xml - 什么是 xdmp:值???XQuery、MarkLogic
我学习了 xdmp:value 函数。
像这样使用
然后,我得到5。
我写这个有什么区别:
我这里也有 5 个。也许我错过了一些观点。
请解释一下这个功能。
提前致谢。
java - 在 CXF 中,向 WSDL 请求和 WS-Security 标头添加身份验证
我有使用 Apache CXF 3.1.18 和 Java 1.7 的代码。它对第三方服务进行 SOAP 调用以创建票证。CXF 从服务的 WSDL 生成我的客户端存根。管理该服务的组现在想要启用“要求对所有传入 SOAP 请求进行 WS-Security 标头验证”,这还设置了“需要对传入 WSDL 请求进行授权”设置。我的工作是使我的代码与启用这些设置的服务兼容。有关通信类的列表,请参见下文。
下面的代码在禁用两个安全设置时有效,并在服务系统中生成票证。启用安全性会生成如下所示的第一个堆栈跟踪;添加身份验证器使代码更进一步,但我一直试图破译“javax.xml.ws.soap.SOAPFaultException: Invalid QName in mapping: wsse:InvalidSecurity”并继续解决我的问题。
我在使用 CXF 使用具有 HTTP Basic 身份验证的 Web 服务时发现此页面401 错误,这建议我添加以下代码:
在下面记为 /* 代码块 1 位置 */ 的位置。
通过此添加,代码通过了第 1 行,但在第 2 行中指出了“映射中的 QName 无效”异常。请参阅堆栈跟踪 #2。
我还发现了这个页面 How to add Basic Authorization to a wsdl on startup with cxf? 但我不确定我应该如何将给定的解决方案应用到我的代码中。对于 CXF 如何将在该页面上进行的 API 调用转换为我上面给出的代码正在执行的操作,我真的没有足够的“全局”知识。
到目前为止,我的搜索技能还不能胜任这项任务。我个人的目标是更多地了解 CXF 的架构以及 java.net.Authenticator 类如何融入整个画面。但是我一直在寻找这一切如何工作的架构,而不是各个类的手册页。
这段代码是由一些有才华的承包商通过相当快地搜索问题而组合在一起并开始工作的,但我不知道是否应该或可以简化它。
我已经下载了 WSDL,并用它来生成客户端存根。有没有办法告诉代码使用 WSDL 的本地副本而不是下载它?
堆栈跟踪 #1:
堆栈跟踪 #2:
java - QName 可以从多个模块访问 - OpenJDK 11?
我在 Eclipse 中的项目中有一个QName引用问题,使用 JDK 11。
我已经查找了所有类引用,如果你能帮助我解决这个问题。
python - 无法从 QName 中删除不必要的元素
我正在尝试在我生成的 xml 中添加命名空间,所以我尝试了这个并想出了下面的代码:
这段代码给了我
而且我要
所以我想摆脱xsi:D=""
. 但是,如果我从 QName 行中删除“D”,所有命名空间都会消失。
你知道我怎么能做到这一点吗?谢谢你。
java - XStream 未加载旧版 QName XML
我有使用一些古老的 XStream 保存的遗留 XML 文件。
现在我正在使用最新的 XStream,并尝试加载数据。它成功加载了日期和 int,但字符串为空。
其中 strQueueParam 如下:
好的,所以我意识到这些 {name/declaredType/scope/value/nil} 是 JAXBElement 的字段。
所以我认为发生的事情是,老一代代码没有使用 jaxb-bindings,所以这些类都包含JAXBElement<String>
而不是String
.
但是现在我认为我不能反序列化这个垃圾 XML,除非我有旧的错误生成的 Param 文件。
好的,我可能必须手动转换 XML。我现在只是在自言自语。我不期待答案。
java - QName 的创建采用默认命名空间前缀而不是提供的参数
我正在使用JaxB Marshalling
来创建XML
. 我的 XML 我使用该JAXB XmlAdapter
选项创建的自定义字段很少。自定义字段是使用JAXBElement
, 其中QName
参数之一创建的。
根据QName
文档,它需要 3 个参数NamespaceURI
,LocalPart
并且Prefix
. 我正在传递所有这些参数。但由于某种原因,createdXML
采用默认命名空间前缀ns0, ns1, ns2
等,而不是在QName
创建参数中提供的前缀。
一切都按预期工作,没有任何问题。我只想知道如何使我作为参数传递QName
的值而不是它自动添加的值。我知道,如果我不传递该值,那么它将采用,但在我的情况下,即使在传递了该值之后,它也会分配我想要避免的值。我尝试了很多东西,但仍然没有成功。custom prefix
default namespace prefix
prefix
default namespace prefix
custom prefix
default namespaces prefix
XML
注意:我没有使用javax Jaxb
libraray,而是使用EclipseLink Moxy
基于Jaxb
实现的libraray。
目前,创建的 XML 看起来像这样:(请注意,这些不是根元素或 XML 标头,而是从 XML 的某个部分获取的块)。
QName
根据我提供给该字段的值,我期望它看起来像这样:
以下是我的Java
课程,它正在创建QName
. 我有一个Map<String, Object>
基于它创建的值的类型QName
。一切都按预期工作,除了QName namespace prefix
.
以下是我在我的使用的依赖项Maven pom.xml
:
java - 通过 QName 定义的命名空间未显示在 xsi:type 属性中导致验证失败
这是我的问题。
我有一个 xsd,其中通过使用 xs:extension 来满足多态性的需求,如下所示:
JaxB 类似乎是使用 xjc 正确生成的(两个类 ItemA 和 ItemB 扩展了抽象类 AbstractItem)
在编组期间,使用 QName 指定命名空间(不能没有,因为它是我必须使用的框架的一部分......)
生成的 XML 类似于:
此 xml 对 xsd 无效,因为 itemA 和 itemB 类型未知。这里所期望的是xsi:type="ns2:itemA"
resp。xsi:type="ns2:itemB"
是否有允许强制 jaxb 使用编组时给出的 QName 命名空间注释 xsi:type 的注释?