/i) {
while (<>) {
$meta .= $_;
last if (/>/);
}
}
$name = $meta =~ /name\s*=\s*"([^"]*)"/i
? $1 : "MISSING ELEMENT NAME";
$content = $meta =~ /content\s*=\s*"([^"]*)"/i
? $1 : "MISSING ELEMENT VALUE";
($scheme) = $meta =~ /scheme\s*=\s*"([^"]*)"/i;
($lang) = $meta =~ /lang\s*=\s*"([^"]*)"/i;
if ($lang || $scheme) {
$mod = " ($lang";
if (! $scheme)
{ $mod .= ")"; }
elsif (! $lang)
{ $mod .= "$scheme)" }
else
{ $mod .= ", $scheme)"; }
}
else
{ $mod = ""; }
print " @|$name$mod; $content\n";
}
print "@)urc;\n";
# ---- end of Perl script ----
如果该程序用于第四节中的元数据例子,则输出结果如下:
@(urc;
@|DC.Title; A Dirge
@|DC.Creator; Shelley, Percy Bysshe
@|DC.Type; poem
@|DC.Date; 1820
@|DC.Format; text/html
@|DC.Language; en
@)urc;
脚本二——元数据创建自动化
如果没有一些自动化的帮助——预先设定缺省值、语法检查、数据范围验证以及拼写检查等——创建和维护高质量的元数据可能非常困难。如果有某个脚本程序能够仅仅通过文档标题来加入相应的元数据内容,就可以极大减轻用户的工作量。下面的程序就可完成这项工作。HTML作者可以把整个内嵌资源描述缩写放在HTML注释声明中:
我们的脚本程序把该声明看作是一种专门的带有文档标题的“元数据块声明”。一般形式为:
该声明的工作方式非常类似于“服务器端引入”,脚本程序用完整的元数据块代替该声明并机或其他的替换。装上后,该脚本就会生成与用户产品Web服务器程序兼容的HTML文件。
文档提供者应该保有一份单独的文档模板,保存很少改变的预设值和元数据元素如果用户的需要非常简单,两份文档除了标题之外都相同,那么这些元素就能自动生成。使用该脚本程序,这些元数据的值可以向变量那样在模板或者HTML文档中引用。变量的引用形式类似于“(--mbVARNAME)”,模板中的格式如下:
content = "Simpson, Homer">
content = "(--mbtitle)">
content = "(--mbfilemodtime)">
content = "(--mbbaseURL)/(--mbfilename)">
content = "text/html; (--mbfilesize)">
content = "(--mblanguage)-BUREAUCRATESE">
content = "Springfield Nuclear">
href = "">
href = "">
只要把其中的变量引用代入实际值,