package.xml文件

在部署元数据(Metadata)的时候,package.xml是很关键的一个文件。此文件中定义了一个XML格式的列表,其中包含了各个元数据组件的定义。

Metadata API中的deploy()和retrieve()函数可以用来操作其中的内容。

组件

每个组件都是一个元数据类型的一个实例,比如:“CustomObject”是一种元数据类型,代表了自定义对象,而名为“ExampleObject__c”的自定义对象是此元数据类型的一个实例。

package.xml文件组成元素

一个package.xml文件的范例如下:

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c</members>
<name>CustomObject</name>
</types>
<types>
<members>*</members>
<name>CustomTab</name>
</types>
<types>
<members>Standard</members>
<name>Profile</name>
</types>
<version>40.0</version>
</Package>

package.xml文件主要包括以下几个元素:

  • fullName:定义了此package的名字,如果没有,则表示其中包含的内容是未管理的包

  • types:定义了元数据的类型和其包含的实例。一个package.xml文件可以包含多个 types 标签。types 标签是此文件的核心部分

  • name:每个 types 标签包含一个,定义了此元数据类型的名字

  • members:包含在 types 标签中,定义了组件的名字,可以有很多个,也可以直接用通配符(*符号)来代表所有的组件

  • version:定义了API的版本

package.xml文件示例

标准对象(Standard Objects)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Account</members>
<name>CustomObject</name>
</types>
<version>40.0</version>
</Package>

在上面的示例中,包含了标准对象Account的定义。需要注意的是:

  • 标准对象所在的 types 标签中的 name 标签的值是“CustomObject”
  • 对于标准对象,在 members 标签中必须列出名字,不能用通配符(*符号)代替

自定义对象(Custom Objects)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>CustomObject</name>
</types>
<version>40.0</version>
</Package>

在上面的示例中,在 members 标签中用通配符(*符号)表示包括所有的自定义对象(不包括任何标准对象)。

标准列表值(Standard Picklist Fields)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Industry</members>
<name>StandardValueSet</name>
</types>
<version>40.0</version>
</Package>

对于版本是38.0及以后的API,当表示标准列表值的时候,可以直接将 types 标签中的 name 标签值设定为“StandardValueSet”,而不需要声明它属于哪个对象。

注意,members 标签中的值是区分大小写的。

对于版本是37.0及更早的API,types 标签中不能用这种表示方法,而是像下面的例子那样:

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Account.Industry</members>
<name>CustomField</name>
</types>
<version>37.0</version>
</Package>

这里,members 标签中的值是不区分大小写的。

字段(Fields)

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>MyCustomObject__c.MyCustomField__c</members>
<name>CustomField</name>
</types>
<types>
<members>Account.SLA__c</members>
<members>Account.Phone</members>
<name>CustomField</name>
</types>
<version>40.0</version>
</Package>

在上面的示例中,两个 types 标签分别包含了标准对象的字段和自定义对象的字段。注意,name 标签中的值都是“CustomField”。

对象的权限

<objectPermissions>
<allowCreate>true</allowCreate>
<allowDelete>true</allowDelete>
<allowEdit>true</allowEdit>
<allowRead>true</allowRead>
<viewAllRecords>false</viewAllRecords>
<modifyAllRecords>false</modifyAllRecords>
<object>MyCustomObject__c</object>
</objectPermissions>

当需要对某一个对象设定权限时,使用 objectPermissions 标签,在其中用 allowCreate 等标签定义各种权限。

其他的还有字段的权限等,用 fieldPermissions 等标签表示。

Salesforce 的 package.xml 文件的更多相关文章

  1. package.xml

    package.xml 也是一个catkin的package必备文件, 它是这个软件包的描述文件, 在较早的ROS版本(rosbuild编译系统)中, 这个文件叫做 manifest.xml , 用于 ...

  2. idea找不到package下的mapper.xml文件

    由于开发人员使用不同的开发工具,导致eclipse的开发人员将mapper.xml文件习惯性的放到package下,以便查看,而eclipse编译时,不会忽略package下的xml以及dtl文件,所 ...

  3. Struts2.0 xml文件的配置(package,namespace,action)

    struts.xml配置 struts.xml文件是整个Struts2框架的核心. struts.xml文件内定义了Struts2的系列Action,定义Action时,指定该Action的实现类,并 ...

  4. 3. 解析 struts.xml 文件

    1. struts.xml 文件基本配置: 主要放在资源路径下,配置 sturts2相关的 Action , 拦截器等配置 <struts> <!-- 设置常量 --> < ...

  5. node使用xml-writer生成本地XML文件实例

    npm中xml-writer文档的链接地址:https://www.npmjs.com/package/xml-writer npm中的文档比较简单,而且生成本地xml文件的demo并不正确.本篇是对 ...

  6. 使用sublime一键格式化XML文件

    1 sublime简介 sublime是一款代码编辑和阅读软件,体积小,运行快,界面非常简洁漂亮.官方地址:https://www.sublimetext.com/ 2 在sublime上安装插件 使 ...

  7. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  8. JAVA中使用DOM解析XML文件

    XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...

  9. Spring读写xml文件

    一.如果只是读取 新建一个 xml 文件,需要满足Spring格式: <?xml version="1.0" encoding="UTF-8"?> ...

随机推荐

  1. exec 命令简单用法 和 find 搭配用法示例

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. 看例子: find ./ -name "*.tx ...

  2. Axure安装、破解、汉化全套

    最近公司准备使用敏捷开发流程,然后刚好需要Axure这个软件,就去找了些资源分享给大家,希望对大家有所帮助: 全套安装,破解,汉化下载地址: 链接: https://pan.baidu.com/s/1 ...

  3. Asp.net 性能监控之压测接口“卡住” 分析

    问题描述:web api项目接口压测.前期并发100,500没出现问题,平均耗时也在几百毫秒.当并发1000时候,停留等待许久,看现象是jemeter卡住,没返回,时间过了许久,才正常. 解决过程: ...

  4. 一位90后的自述:如何从年薪3w到30w

    作者介绍:90后生人/男/二本本科/世界500强技术主管 1.引言 上海小胖,曾就职于pwc(普华永道)担任TechLeader,带领DS(Data Scientist)团队完成全美医疗保险大数据项目 ...

  5. LSTMs和递归神经网络的初学者指南

    本文是读A Beginner's Guide to LSTMs and Recurrent Neural Networks的个人摘要. 递归网络 Recurrent nets 递归网络是一种人工神经网 ...

  6. 一个BAT老程序员的忠告!

      一.在中国,你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你更不要认为那些从事市场.运营的人,没有前途. 不清楚你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的 ...

  7. 我们来说一说TCP神奇的40ms

    本文由云+社区发表 TCP是一个复杂的协议,每个机制在带来优势的同时也会引入其他的问题. Nagel算法和delay ack机制是减少发送端和接收端包量的两个机制, 可以有效减少网络包量,避免拥塞.但 ...

  8. 翻译:update语句(已提交到MariaDB官方手册)

    本文为mariadb官方手册:UPDATE的译文. 原文:https://mariadb.com/kb/en/update/ 我提交到MariaDB官方手册的译文:https://mariadb.co ...

  9. spring boot(三) 集成mybatis

    前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...

  10. Linux上安装nginx+tomcat负载均衡

    1.Ngnix Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.  其特点是占有内 ...