https://c3d.club/xml/basic/2018/12/27/xml-file-base.html

1.文件头

XML文件头有XML声明与DTD文件类型声明组成。其中DTD文件类型声明是可以缺少的,关于DTD声明这里不做介绍,而XML声明是必须要有的,以使文件符合XML的标准规格。

在PackageContents.XML文件中的第一行代码几位XML的声明:

代表的意识是:

"" 代表一条指令的结束;

"xml"代表此文件是XML文件;

" version="1.0" "代表文件用的是XML1.0标准;

" encoding="utf-8" "代表此文件所用的字符集。

注意: XML声明必须出现在文档的第一行。

2.文件体

文件体中包含的是XML文件的内容,XML元素是XML文件内容的基本单元。从语法上讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。

XML元素与HTML元素的格式基本相同,其格式如下:

<标记名称
属性名1="属性值1" 属性名2="属性值2"……>内容</标记名称>

所有数据内容都必须在某个标记的开始和结束标记内,而每个标记又必须包含在另一个标记的开始于结束标记内,形成嵌套式的分布,只有最外层的标记不必被其他的标记所包含。最外层的是根元素(Root),又称文件(Document)元素,所有的元素都包含在根元素内。

在PackageContents.XML文件中,根元素就是,根元素必须而且只能有一个。SchemaVersion等元素为属性,CompanyDetails等元素为"内容",每条内容又有自己的属性及内容,多层嵌套。

PackageContents.XML文件中各元素有些是必须具备的,有些是可选的。

大部分的属性,通过其名称就能知道其作用,例如Name,Description等,下面支队个别元素的注意事项进行解释:

RuntimeRequirements元素,虽然是可选元素,但作者建议保留,理由如下:属性Platform,SeriesMin,seriesMax可以指定插件的运行平台及版本。

例如在Civil 3D中运行相应的插件,可以通过设置Platform的值为Civil 3D实现,运行其他基于AutoCAD的产品时,该插件并不会被加载;如果所有基于AutoCAD的产品都加载此插件,可以通过设置Platform的值为AutoCAD*实现,即示例中所展示的状态。

SeriesMin,SeriesMax限制了插件支持的AutoCAD版本,不同的AutoCAD版本,需要加载不同版本的插件,可以通过指定这两项元素的值来实现。示例中,SeriesMin="R19.1",SeriesMax="R22.0",表示从AutoCAD 2014版至AutoCAD 2018版均能加载此插件。如何查询产品名称中版本与内部版本之间的关系,可以利用命令AcadVer来实现。

另外一个需要注意的问题是文件路径均为相对路径,均相对于根.bundle文件夹。

除了以上的实例,读者还可以研究其他的软件包,例如Civil3DSnoopDB.bundle来了解程序包的结构及XML文件中的元素。

3.示例文件

PackageContents.XML

<?xml version="1.0" encoding="utf-8" standalone="no"?>

 

 

<ApplicationPackage

SchemaVersion="1.0"

AppVersion="4.70.9"

AutodeskProduct="AutoCAD"

Description="Autodesk BIM 360 Glue AutoCAD 2019 Add-in"

Author="Autodesk"

ProductCode="{F4C628E2-41FF-5AAF-8985-DA26BBF5FCB2}"

UpgradeCode="{D3A7FFB2-B829-4EA1-BD0C-E681847D1E92}"

Name="Autodesk BIM 360 Glue AutoCAD 2019 Add-in">

<RuntimeRequirements

OS="Win32|Win64"

Platform="AutoCAD|AutoCAD*"

SeriesMin="23.0"

SeriesMax="23.0" />

<CompanyDetails

Name="Autodesk"

Email="andrew.gleadall@autodesk.com" />

<Components

Description="Win32 parts">

<RuntimeRequirements

OS="Win32"

Platform="AutoCAD|AutoCAD*"

SeriesMin="23.0"

SeriesMax="23.0" />

<ComponentEntry

AppName="BIM360Glue"

AppType=".Net"

Version="4.70.9"

ModuleName="./Contents/Win32/BIM360GlueAutoCAD2019Addin.dll"

AppDescription="Main .NET Module"

LoadOnAutoCADStartup="True">

<Commands

GroupName="ADESK_BIM360GLUE">

<Command

Local="ShowBIM360"

Global="ShowBIM360"

Description="Command to show BIM360 plugin" />

<Command

Local="HideBIM360"

Global="HideBIM360"

Description="Command to hide BIM360 plugin" />

<Command

Local="Glue"

Global="Glue"

Description="Glue" />

<Command

Local="ClashPinpoint"

Global="ClashPinpoint"

Description="ClashPinpoint" />

<Command

Local="BIM360_Attach"

Global="BIM360_Attach"

Description="Attach" />

</Commands>

</ComponentEntry>

<ComponentEntry

AppName="BIM360Glue"

Version="4.70.9"

ModuleName="./Contents/Win32/BIM360GlueAddinsCommon.dll"

AppDescription="BIM360GlueAddinsCommon"

AppType="Dependency" />

 

<ComponentEntry

AppName="BIM360Glue"

Version="4.70.9"

ModuleName="./bim360.cuix" />

 

</Components>

<Components

Description="Win64 parts">

<RuntimeRequirements

OS="Win64"

Platform="AutoCAD|AutoCAD*"

SeriesMin="23.0"

SeriesMax="23.0" />

<ComponentEntry

AppName="BIM360Glue"

AppType=".Net"

Version="4.70.9"

ModuleName="./Contents/Win64/BIM360GlueAutoCAD2019Addin.dll"

AppDescription="Main .NET Module"

LoadOnAutoCADStartup="True">

<Commands

GroupName="ADESK_BIM360GLUE">

<Command

Local="addHorizontalRibbon"

Global="addHorizontalRibbon"

Description="addHorizontalRibbon" />

<Command

Local="removeHorizontalRibbon"

Global="removeHorizontalRibbon"

Description="removeHorizontalRibbon" />

<Command

Local="Glue"

Global="Glue"

Description="Glue" />

<Command

Local="ClashPinpoint"

Global="ClashPinpoint"

Description="ClashPinpoint" />

<Command

Local="BIM360_Attach"

Global="BIM360_Attach"

Description="Attach" />

</Commands>

</ComponentEntry>

<ComponentEntry

AppName="BIM360Glue"

Version="4.70.9"

ModuleName="./Contents/Win64/BIM360GlueAddinsCommon.dll"

AppDescription="BIM360GlueAddinsCommon"

AppType="Dependency" />

 

<ComponentEntry

AppName="BIM360Glue"

Version="4.70.9"

ModuleName="./bim360.cuix" />

 

</Components>

</ApplicationPackage>

XML文件基础的更多相关文章

  1. JAVA中通过Jaxp操作XML文件基础

    Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...

  2. XML文件基础,DTD校验文件编写,Schema文件的简单使用

    dtd <!-- <!ELEMENT 元素(子元素,...)> --> <!ELEMENT students (student+,cat*) > <!ELEM ...

  3. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  4. 30天C#基础巩固----查找XML文件元素

    一:XML文档 了解xml文档. 利用代码来创建XML文档. //引用命名空间+using System.Xml; XmlDocument xdoc=new XmlDocument(); XmlDec ...

  5. android基础知识13:AndroidManifest.xml文件解析

    注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  6. C#基础精华06(Linq To XML,读取xml文件,写入xml)

    1.XML概述: 可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言,侧重于存储数据. 2.XML特点 xml 标记语言 html x ...

  7. java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class

    package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util.Scanner; impo ...

  8. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

  9. 基础学习笔记之opencv(3):haartraining生成.xml文件过程[转]

    1.准备正负样本: 在上一讲http://www.cnblogs.com/tornadomeet/archive/2012/03/27/2420088.html 中,我们已经收集到了训练所用的正样本. ...

随机推荐

  1. UVA10862 - Connect the Cable Wires(递推 + java的大数)

    UVA10862 - Connect the Cable Wires(递推 + java的大数) 题目链接 题目大意:给你n座房子位于一条直线上,然后仅仅给你一个cable service.要求每座房 ...

  2. 使用imgareaselect 辅助后台进行图片裁剪

    由于项目其中用到图片裁剪,本来能够不用到后台进行裁剪的,可是要兼容万恶的IE浏览器,所以不得不使用后台进行裁剪. 这次使用到imgareaselect 插件获取须要裁剪区域的坐标.再由后台进行裁剪操作 ...

  3. SecureCRT图形界面(通过设置调用Xmanager - Passive程序)

    首先,在server进行设置 假设server是图形化界面启动的,xhost +命令能够不用运行 [root@test ~]# xhost + xhost:  unable to open displ ...

  4. 【Cocos2dx】资源目录,播放背景音乐,导入外部库

    在Cocos2dx中播放背景音乐是一件非常easy的事情,就一行代码,可是首先要导入Cocos2dx的音频引擎cocosDenshion. cocosDenshion对cocos2dproject提供 ...

  5. Dragon Ball--hdoj

    Dragon Ball Problem Description Five hundred years later, the number of dragon balls will increase u ...

  6. 确定比赛名次--hdoj

    确定比赛名次 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  7. Node.js:工具模块

    ylbtech-Node.js:工具模块 1.返回顶部 1. Node.js 工具模块 在 Node.js 模块库中有很多好用的模块.接下来我们为大家介绍几种常用模块的使用: 序号 模块名 & ...

  8. [javaEE] Eclipse 默认设置的换行长度

    eclipse 默认设置的换行长度, 格式化代码后,经常换行,非常难看. 1.Java代码 打开Eclipse的Window菜单,然后 Preferences->Java->Code St ...

  9. encodeURIComponent编码java后台解码出现乱码问题

    问题:JavaScript请求后台带着name参数,有中文进行编码:url?name=" + encodeURIComponent(name):java后台直接使用name或者name=ja ...

  10. yii1 session

    在 Yii框架中使用session 的笔记: 首先,在Yii框架中,你不需要像标准PHP代码那样使用session_start(),在Yii框架中,autoStart 属性缺省被设置为true,所以, ...