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. Spark基础-scala学习(七、类型参数)

    类型参数是什么 类似于java泛型,泛型类 泛型函数 上边界Bounds 下边界 View Bounds Context Bounds Manifest Context Bounds 协变和逆变 Ex ...

  2. Scala - 快速学习07 - 模式匹配

    Scala中的模式匹配的功能可以应用到switch语句.类型检查.“解构”等多种场合. 简单匹配 Scala的模式匹配最常用于match语句中.Scala的match语句类似Java里的switch. ...

  3. 使用以下映射将包含A-ZIS的字母的消息编码为数字:'A' - > 1,'B' - > 2 ...'Z' - > 26 给定包含数字的编码消息,确定解码方式的总数(python)(原创)

    题目:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'.现在给一串数字,给出有多少种可能的译码结果. 实现逻辑: 1,使用队列的数据类型,每一 ...

  4. JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript之间转换

    现在构建任何类型的软件项目最流行的方法这是使用类.在这篇文章中,探讨用 JavaScript 实现类的不同方法,以及如何构建类的结构.首先从深入研究原型工作原理,并分析在流行库中模拟基于类的继承的方法 ...

  5. java中的正则表达式捕获组与引用的概念

    今天群里有个人问,怎样用增则表达式匹配三角形的三边,其实只是要匹配三个数字而已,如 301 402 503 开始认为很简单,我就写了一个   "(([1-9]\\d?)\\s){2}$2&q ...

  6. Struts框架(6)---action接收请求参数

    action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...

  7. mysql 开发进阶篇系列 5 SQL 优化(表优化)

    一. 使用sql提示 sql 提示(sql hint)是优化数据库的一个重要手段, 是在sql语句中加入一些人为的提示来达到优化操作的目的. 1.1 use index 在查询语句中表名的后面,添加u ...

  8. app 压力测试

    monkey工具详解 https://blog.csdn.net/jffhy2017/article/details/54572400 ----------------------- Android ...

  9. 浅谈canvas中的拖尾效果

    引言 很早就想了解以下 canvas 中的拖尾效果(如彗星,烟花等效果)是怎么实现的,但是一直没有深入了解,正巧在 codepen 上看到一个 demo,代码简单,效果炫酷,故有此文. 什么黑科技 在 ...

  10. mcrypt加密以及解密过程

    Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示 Mcrypt扩展库可以实现加密解密功能 ...