DigitalPlatform / dp2

Integrated Library System / 图书馆集成系统
http://digitalplatform.github.io/dp2
Apache License 2.0
106 stars 54 forks source link

dp2内务中名字空间说明 #1114

Open SZCND opened 2 years ago

SZCND commented 2 years ago

在dp2内务读者窗装载一条读者记录,在“对象”上传一个文件,保存,然后回到xml属性页。 多了一条<dprms:file id="0" xmlns:dprms="http://dp2003.com/dprms" /> 其中dprms:是名字空间的前缀,(前缀就叫dprms:)是由xmlns:dprms="http://dp2003.com/dprms"定义的,其中http://dp2003.com/dprms是URI,这是前缀对应的URI,就是名字空间的URI。file元素多了一个dprms:的前缀,dprms:file就是带名字空间的元素。id没带名字空间,是个普通的属性。 开发的原理:可以用API往数据库里写一条读者记录,只要在xml中包含一个file元素(dprms:file id=“number”)那么这条记录里面就会有一个对象,但是刚保存的时候这个对象是个空对象,没有什么内容,但对象已经存在了。这是不需要上传对象的,什么1G,2G的,只要在这条记录里面产生一个file元素。

打开dp2rms找到这个读者,装载到xml纯文本,下方多了一条记录(服务器端别名,状态,本地物理路径.....),在xml纯文本中删除以下内容,然后保存

 <dprms:file id="0" xmlns:dprms="http://dp2003.com/dprms" __mime="text/plain" __localpath="C:\Users\MRwu\Desktop\拼音.txt" __size="4162" __timestamp="030700955028da080000000000000001" __state="已上载">
    </dprms:file>

保存完之后下方的记录没有了,这是因为这条记录是绑在file元素上的,删除了file元素就会有这个对象,我们没有叫“删对象”的API,所以只能删除元素集记录,(xml叫元素集记录),通过它删掉file元素,间接达到删对象的目的。file元素和对象是一致的,捆绑死的,要删就会一起删掉。

再次将dp2内务中以下内容<dprms:file id="0" xmlns:dprms="http://dp2003.com/dprms" />输入到刚才dp2rms删除的位置,并保存,提示“下载资源文件元数据失败,原因:ID为"00000000001_0"的记录不存在”状态为“已上载”但是“尺寸”“媒体类型”“时间戳”都不存在,这里有点问题,谢老师再研究一下。

总结:API往里面创建一个对象,是没有创建对象的功能,是通过写入file元素创建对象,上传是有意义的,因为把对象真的上传。再次回到dp2内务该读者的对象属性页中,内容为ID是0,状态是已上载,但是后没有东西,它没有尺寸,这时再上传文件到id=0这条记录中,会覆盖它。例如这条id=0记录的文件为2G,再上传到这个id 1G的文件会覆盖它,尺寸就是1G。

对象是和书目一体的,删除书目对象也不会存在