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. Python中的注释和解注释

    注释 目标 注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释) 以 # 开头,# ...

  2. swiper在vue项目中的循环轮播bug以及点击事件

    一般的,如果是静态数据(本地数据),可以直接在mounted生命周期中初始化,循环轮播.自动播放都比较正常. 但是,如果是动态从后台获取数据的话,采用上述方法会发现,轮播图无法自动播放,也无法拖拽. ...

  3. 分布式作业 Elastic Job 如何动态调整?

    前面分享了两篇分布式作业调度框架 Elastic Job 的介绍及应用实战. ElasticJob-分布式作业调度神器 分布式作业 Elastic Job 快速上手指南! Elastic Job 提供 ...

  4. C# 配置文件Xml读写

    分析xxx.exe.config文件: <?xml version="1.0" encoding="utf-8"?> <configurati ...

  5. vue搭建多页面开发环境

    自从习惯开发了单页面应用,对多页面的页面间的相互跳转间没有过渡效果.难维护极度反感.但是最近公司技术老大说,当一个应用越来越大的时候单页面模式应付不来,但是没讲怎么应付不来,所以还得自己去复习一遍这两 ...

  6. mysql 开发基础系列8 表的存储引擎

    一. 表的存储引擎 1. 概述 插件式存储引擎是mysql数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等.在mysql 5.0里支持的引擎包括: MyISAM, ...

  7. 浅谈Mybatis连接原理

    众所周知数据库连接的过程,但是最近面试的人(菜面菜),都说用的SSM框架,但是我问了一下,mybatis是怎么连接上mysql的,基本上都会说:配置好的,直接用了,今天我来抛砖引玉一下,欢迎拍砖! 什 ...

  8. Spring mybatis源码篇章-MapperScannerConfigurer关联dao接口

    前言:Spring针对Mybatis的XML方式的加载MappedStatement,通过引入MapperScannerConfigurer扫描类来关联相应的dao接口以供Service层调用.承接前 ...

  9. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)--技术流ken

    前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+A ...

  10. SQLite占用资源少原因

    本篇承接上篇SQLite详解的下篇,介绍SQLIte为什么占用资源少的原因?本文主要参考https://blog.csdn.net/hanyingzhong/article/details/46400 ...