我正在尝试使用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>
答案 0 :(得分:1)
要添加collapsar所做的答案,以下是Salesforce的Enterprise WSDL中使用的一些命名空间。从这些开始可能是一个好主意,或者看看他们发布的其他WSDL。 (有关详细信息,请参阅http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_partner.htm。)
的xmlns:TNS = “瓮:enterprise.soap.sforce.com”
的xmlns:FNS = “瓮:fault.enterprise.soap.sforce.com”
的xmlns:ENS = “瓮:sobject.enterprise.soap.sforce.com”
编辑:刚看了一下Apex类的元数据,发现了这个名称空间,这可能很有用:
的xmlns = “http://soap.sforce.com/2006/04/metadata”