1. 所有的 XML 命名采用UCC (首字大写的大小写混合)方案,单词间无空格或连字符。
解释:大小写混合方案(camel case)分为UCC与LCC两种。UCC要求以大写字母开头,例如:NewBookName;LCC则以小写字母开头,例如:newBookName。 为了统一命名,IXRetail 推荐使用UCC,且不允许使用空格或下划线,即不能用New_Book_name或New Book Name。
2. 可读性比标记长度更重要。
解释:IXRetail认为,为了便于用户理解 XML 文档,增加标记的长度也是值得的。例如:CompanyID就比ID_Comp要好。
3. 尽量避免在元素、属性和类型的命名中使用缩写。但是 GTIN(全球贸易项目编号)、ID(标识号)、POS(电子收款机系统)除外。
解释:本原则是依据 ARTS 数据模型而提出的。例外情况是针对零售业而言,其它行业可以规定本行业的可缩写术语。
4. 尽量不要在属性命名中包括实体名。
在 ARTS 数据模型中,实体名通常被用作属性名字前缀。然而 XML 已具清晰的层次结构,包含前缀的属性名只会徒然增加标记长度。本原则也适用于本地元素命名。
5. 使用 W3C XML Schema,不要用 DTD 或其他 Schema 方案。
解释:与 DTD 相比,W3C 的 XML Schema具有很多优点,如:XML Schema 是 XML文档;一个XML文件可以对应多个Schema;XML Schema 的内容模型可以随意扩充;XML Schema支持多种数据类型,且能自定义;XML Schema允许使用本地名称;XML Schema 可以使用空值,等等(参见http://www.w3.org/TR/xmlschema-0)。其他方案包括微软早期向 W3C 提交的 XML Schema 方案等。
6. 枚举值的命名,应该遵循元素命名原则,且不包含数字;尽量不要使用 IXRetail 创造的新名字;尽量使用 ISO 标准命名而不是国家标准或协会标准命名。
解释:包含数字的命名是不规范的,且给处理带来困难。自然语言词汇已经暗示了其数值,何乐而不为?
7. 枚举值应该使用由英语单词组成的名字。
解释:能够暗示数值的自然语言命名没有多少选择余地,而在 ARTS 数据模型中已经提供了英语命名,可以使用它们的衍生词作为名称。
8. 命名不应与所在结构重复。
解释:本原则是4.的推广。例如:在 元素中的 元素就不要使用 NewBookName。
9. 所有的 XML Schema 的全局名字空间统一命名为 IXRetail,它的 URI 是 http://www.nrf-arts.org/IXRetail/namespace/ 。
解释:本原则可以避免与其他名字空间冲突。URI 末尾的"/"代表它是目录而不是文件名。这并不重要,因为 URI 是用于给名字空间命名而不是对其定位的。其他行业可以自行规定名字空间。
10. 所有来自 IXRetail 的 XML 实例都要指定 IXRetail 为默认名字空间。
解释:本原则可以避免在使用本行业术语时都要加上名字空间前缀 IXRetail。各行业可以指定自己的默认名字空间。注意:本原则仅适用于 XML 实例,而不是 XML Schema。
11. 所有来自 IXRetail 的 XML Schema 都要指定 IXRetail 为默认名字空间以及目标名字空间。
解释:在本原则下,W3C 不再是默认名字空间,相应的标准命名都要加上名字空间前缀。注意:本原则仅适用于 XML Schema 而不是 XML 实例。
12. 凡是领域专家认为可重用的数据类型,无论是 simpleType 还是 complexType,应该在全局名字空间而不是在 Element 属性中定义。
解释:数据类型名称很少用在标记里,即使全局名字空间里定义,并且加上领域名称和作者等前缀,也不会影响标记的总长度。
13. Schema 中的元素名称,应该使用嵌套 Element 定义,其数据类型可以被显式或隐式定义;不要用 ref 引用全局定义。
解释:本原则与12.相反。元素名称在标记中频频出现,因此,精简了附加信息的本地元素名称可以大大缩短标记总长度。
14. 来自 IXRetail 的 Schema 的各个版本,都应该在 schemaLocation 属性中指定其 URI;URI 要遵循 ARTS-NRF 制定的规范 (每个 schemaLocation 都是 http://www.nrf-arts.org/IXRetail/schemaLocation/ 的子目录,且是 UTF-8 文件)。开放标记 的 version 属性不能为空,且必须与 schemaLocation 属性一致。schemaLocation 属性和 version 属性的值都要与 Schema 的许可、实施、发行信息中所述一致;还要包含符合 W3C 日期格式的发行日期 。
解释:为了规范 XML Schema 的版本控制机制,任何发行版本,包括第一版的 XML Schema ,都应该遵循本原则。任何 XML 处理器均支持 UTF-8 格式,但只有少数处理器支持简/繁体中文、日语等 UTF-16 格式的语言,因此要用 UTF-8 格式。所谓 W3C 日期格式,是指 yyyymmdd 格式,如:20020211(2002年2月11日)。版本控制机制尚未统一,故其他机构制定的规范可能与本原则有出入。
15. 尽量使用 ARTS XML 字典中的词汇。
解释:ARTS XML 字典中包含了 ARTS 数据模型的实体名和属性名、来自 IXRetail schemas 的名称,以及它们的衍生词。目前它的词汇以零售业为主,可以扩充到任何行业。
16. 从全局名字空间选取名称时,尽量选取能揭示被命名对象的特定意义的复合词。
解释:词汇具有多义性,通用词更是如此。如果不加选择,就会引起岐义,从而影响文档的可读性。本原则对于用 Element 定义的本地词汇不适用,它们所在的层次限定了其含义。
17. 名字空间前缀要保持统一;使用 IXRetail 名字空间不需要加前缀。
只能使用下列前缀和定义:
(1) xml(在可扩展标示语言标准方面定义)
(2) xmlns(在可扩展标示语言标准的 Namespaces 中定义)
(3) xs http://www.w3.org/2001/XMLSchema
(4) xsi http://www.w3.org/2001/XMLSchema-instance 小结:以上17条原则是由 IXRetail 提出来,以规范零售业的 XML Schema 的设计。基本的原则包括:规范命名的形式、合理选词、规范名字空间、与现行工业标准接轨。具体应用时,可视情况加以调整。
解释:前述10.与11.两条原则已经规定了 IXRetail是默认名字空间,故不需加前缀。本原则提到的可用前缀还可进一步完善。
星期三, 七月 27, 2005
Re: XML Schema 的最佳实践原则
星期四, 七月 21, 2005
如何用diskboot.img制造Redhat AS 4.0 USB启动安装盘?
Another image file contained in the images/ directory is diskboot.img. This file is designed for use with USB pen drives (or other bootable media with a capacity larger than a diskette drive).
Use the dd command to write the image. dd if=bootdisk.img of=/dev/sd0
(Windows 用RawWrite.exe)
Note
The ability to use this image file with a USB pen drive depends on the ability of your system's BIOS to boot from a USB device.
如何把RedHat 的Boot.iso放到USB 盘上,直接启动,不要再刻CD了。Cool
4.4. 为采用 USB 闪盘引导方法准备文件 | ||
---|---|---|
| 第4章 获取系统安装介质 |
如果采用 USB 闪盘引导你需要一台运行支持 USB 的 GNU/Linux 系统。 你应该确定 usb-storage 内核模块已经装入 ( modprobe usb-storage ) 然后尝试找出 USB 闪盘映射到的那个 SCSI 设备。 在这个例子中是 /dev/sda )。 为了 写入你的闪盘,你可能需要关闭它的写保护开关。
注意,准备的 USB 闪盘应该至少有 128MB 的容量 ( 在更小的尺寸安装也是可能的,请参照 第4.4.2节 , "拷贝文件 ── 灵活的方法 " )。
这里有一个单一的文件 hd-media/boot.img.gz 。其中包括了所有的 安装文件 (包括内核),以及 SYSLINUX 和它的配置文件。你只需要把它直接 解到你的 USB 闪盘内:
gzip -dc boot.img.gz >/dev/sda |
当然这会删除这个设备上的所有内容,因此小心你使用的是正确的 USB 闪盘设备名称。
之后,挂接 USB 闪盘 ( mount /dev/sda /mnt )。里面应该 存在一个 FAT 文件系统,并且存有一个 Debian 网络安装盘或者名片型 ISO 映象。请注意文件 名必须以 .iso 结尾。 解挂闪盘 (umount /mnt) 后结束。
如果你需要更多的灵活性或者只是想了解其间发生了什么,你应该使用如下的方法来把文件放到你的闪盘。 我们将显示如何安装闪盘来使用其第一个分区,而不是整个设备。
注
由于大多数 USB 内存条预先装载了一个单一的 FAT16 分区,你可能不需要重新分区或者重新格式化 USB 内存条。如果你必须这么做,请使用 cfdisk 或者其他的分区工具来 创建一个 FAT16 分区并且输入
mkdosfs /dev/sda1 |
小心你使用的是 USB 盘正确的设备名称。mkdosfs 命令包含在 dosfstools Debian 包中。
如果想要在 USB 闪盘引导后启动内核,我们将在 USB 闪盘上放入一个引导装载程序。尽管任何引导装载程序 (比如 LILO) 应该可以胜任这个工作。不过还是使用 SYSLINUX 更方便。主要是它使用一个 FAT16 分区并且用编辑一个文本文件 就能进行配置。任何支持 FAT 文件系统的操作系统可以用来改变引导装载程序的配置文件。
为了把 SYSLINUX 放到你的 USB 闪盘的分区上,请安装 syslinux 和 mtools 包在你的系统里, 然后输入
syslinux /dev/sda1 |
请再次确保你使用的是正确的设备名称。在开始 SYSLINUX 的时候 不能挂接分区。这个程序会写入分区的引导扇区并且创建 ldlinux.sys 文件。它主要包含引导装载器的代码。
接下来挂接分区 (mount /dev/sda1 /mnt) 并且 从 Debain 文件库拷贝下列文件到内存条上:
vmlinuz (内核执行文件)
initrd.gz (初始化内存映像)
syslinux.cfg (SYSLINUX 配置文件)
Optional kernel modules
如果你想重命名这些文件,请注意 SYSLINUX 只能处理 DOS (8.3) 文件名。
syslinux.cfg 配置文件应该含有下列两行:
default vmlinuz |
请注意, ramdisk_size 参数在需要的时候可能要增大,这取决于 你正在引导的内存映像大小。
现在你需要把任意 Debian ISO 映像 (名片式,网络安装式或者甚至是完全安装版) 放入你的 USB 闪 盘 (如果它装的下的话)。这样的一个映象文件后缀必须是 .iso。
如果你想通过网络安装而不需要一个 ISO 映像,你当然需要跳过以前的步骤。并且你必须要使用来自 netboot 目录的内存映像来取代来自 hd-media 的内存映像。这是因为 hd-media/initrd.gz 并不包含网络支持。
当你完成的时候,解挂 USB 闪盘memory stick (umount /mnt) and activate its write protection switch.
警告
如果你的系统拒绝从 USB 闪盘引导,那么闪盘可能装有一个无效引导扇区记录 (MBR)。 使用来自 mbr 的 install-mbr 命令也许可以解决这个问题:
install-mbr /dev/sda
星期四, 七月 07, 2005
SCM Principle Microsoft SourceSafe VS CVS/Subvision
CVS/Subvison:The Copy-Modify-Merge Solution
which is better?
LMU(SourceSafe ) is better for common.
星期日, 七月 03, 2005
星期五, 七月 01, 2005
window command line shutdown
DOS | ECHO G=FFFF:0000 ? DEBUG | Reboot | Warm boot, sometimes cold boot. May not work with "exotic" memory managers, like Quarterdeck's QEMM or DesqView; in that case, use RESET.COM instead. | ||||||||||||||||||
Win31* | ECHO G=FFFF:0000 ? DEBUG | Task Manager popup | And sometimes reboot | ||||||||||||||||||
Win9* | RUNDLL USER.EXE,ExitWindows | Shutdown (2) | |||||||||||||||||||
Win9* | RUNDLL USER.EXE,ExitWindowsExec | See Remarks | Win95: various results, usualy fast shutdown (and lock PC), sometimes restart Windows, sometimes reboot. Win98: Restart Windows, sometimes reboot. | ||||||||||||||||||
Win9* | RUNDLL SHELL.DLL,RestartDialog | Restart dialog | "System Settings Changed, Do you want to restart your computer now?" dialog | ||||||||||||||||||
Win98 | RUNDLL32 KRNL386.EXE,exitkernel | Poweroff | Poweroff for ATX boards only, otherwise normal shutdown (3) | ||||||||||||||||||
Win98/ME | RUNDLL32 SHELL32.DLL,SHExitWindowsEx n | See Remarks |
| ||||||||||||||||||
Win98/ME | RUNONCE.EXE -q | Reboot (4) | |||||||||||||||||||
NT4 | See Reboot NT on my Solutions found in alt.msdos.batch page | Reboot | Reboot immediately | ||||||||||||||||||
NT4 | RUNDLL32 USER32.DLL,ExitWindowsEx | Logoff | Most systems require the command to be called twice before logging off | ||||||||||||||||||
NT4+RK W2K+RK | SHUTDOWN /L /R /T:0 /Y | Reboot | Immediate shutdown & reboot | ||||||||||||||||||
NT4+RK W2K+RK | SHUTDOWN /L /T:10 /Y /C |