有人有 Salesforce APEX 的 XML 命名空间吗?
我正在尝试使用 xmllint 重新格式化我们的 VisualForce 代码。我的命令行是“xmllint --format --recover filename.page”。
尽管格式(尤其是脚本部分)效果很好,但所有内部带有顶点的标签都被修改以消除“顶点”。
例如,“apex:page”被替换为“page.”。显然,这使得重新格式化毫无用处。
处理时,xmllint 会抱怨名称空间。在下面的示例中,我仅使用命名空间“ns”。请注意输出如何删除“ns”。
tgagne@ubuntu:~/tmp$ xmllint --format --recover a.xml
a.xml:1: namespace error : Namespace prefix ns on a is not defined
<ns:a>
^
<?xml version="1.0"?>
<a>
</a>
I'm trying to use xmllint to reformat our VisualForce code. My command line is "xmllint --format --recover filename.page".
Though the formatting (especially script sections) work out well, all the tags with apex inside them are modified to eliminate "apex."
For instance, "apex:page" is replaced with "page.". Obviously, this makes the reformatting useless.
While processing, xmllint complains about the namespace. In the example below I just use the namespace "ns." Notice how the output removes the "ns."
tgagne@ubuntu:~/tmp$ xmllint --format --recover a.xml
a.xml:1: namespace error : Namespace prefix ns on a is not defined
<ns:a>
^
<?xml version="1.0"?>
<a>
</a>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了补充 collapsar 所做的答案,以下是 Salesforce 的 Enterprise WSDL 中使用的一些命名空间。从这些开始可能是个好主意,或者查看他们发布的其他 WSDL。 (请参阅 http://www.salesforce.com/us/developer /docs/api/Content/sforce_api_partner.htm 了解更多详细信息。)
xmlns:tns="urn:enterprise.soap.sforce.com"
xmlns:fns="urn:fault.enterprise.soap.sforce.com"
xmlns:ens="urn:sobject.enterprise.soap.sforce.com"
编辑:刚刚查看了我们的 Apex 类的元数据,发现了这个命名空间,这可能有用:
xmlns="http://soap.sforce.com/2006/04/metadata"
To add to the answer that collapsar made, here are some of the namespaces that are used in Salesforce's Enterprise WSDL. Might be a good idea to start with these, or take a look at the other WSDLs they have published. (See http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_partner.htm for more details.)
xmlns:tns="urn:enterprise.soap.sforce.com"
xmlns:fns="urn:fault.enterprise.soap.sforce.com"
xmlns:ens="urn:sobject.enterprise.soap.sforce.com"
Edit: Just took a look at the metadata for our Apex classes and found this namespace, which might be useful:
xmlns="http://soap.sforce.com/2006/04/metadata"