1

Zotero データベースから FileMaker Pro にアイテムを取得する必要があります。これを行う最も明白な方法は、Zotero から xml にエクスポートし、その xml を FMPXMLRESULT xml 形式に変換してから、FileMaker Pro にインポートすることです。

私は xml 形式の翻訳を扱うまったくの初心者です。

それを行うxsltを持っている人はいますか、またはこれら2つのxml形式に固有の提案を私に提供してくれますか(一般的なxslt/xml参照だけではありません)?

Zotero xml の出力は、米国議会図書館の MODS フォームにあります: http://www.loc.gov/standards/mods/

FileMaker Pro FMPXMLRESULT xml 形式については、http ://www.filemaker.com/help/html/import_export.16.30.html で説明されています。

以下は、Zotero MODS エクスポートの例です。(申し訳ありませんが、この投稿でコード ブロックを形成するためにファイルをコピーする際に、インデントの一部が失われました。実際のファイルへの Dropbox リンクは次のとおりです: https://www.dropbox.com/s/otrwr7xk0uwmff7/From_Zotero_MODS.xml )

<?xml version="1.0"?>
<modsCollection xsi:schemaLocation="http://www.loc.gov/mods/v3     
http://www.loc.gov/standards/mods/v3/mods-3-2.xsd" xmlns="http://www.loc.gov/mods/v3"     
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <mods>
<titleInfo>
  <title>Roberto Giobbi's Card college. Volume 1</title>
</titleInfo>
<typeOfResource>text</typeOfResource>
<genre authority="local">book</genre>
<genre authority="marcgt">book</genre>
<name type="personal">
  <namePart type="family">Giobbi</namePart>
  <namePart type="given">Roberto</namePart>
  <role>
    <roleTerm type="code" authority="marcrelator">aut</roleTerm>
  </role>
</name>
<originInfo>
  <place>
    <placeTerm type="text">Seattle, Wash.</placeTerm>
  </place>
  <publisher>Hermetic Press</publisher>
  <copyrightDate>1996</copyrightDate>
  <issuance>monographic</issuance>
</originInfo>
<identifier type="isbn">0945296185</identifier>
<subject>
  <topic>Card tricks</topic>
</subject>
<note>External Resources: Cite This Item Search for versions with same title and author     
| Advanced options ...
Uniform Title: Grosse kartenschule. Band 1. English
Edition: Rev. 2nd ed. ; English language ed.
Language: English
Note(s): Includes bibliographical references (p. [245]-247) and index.
Other Titles: Card college
Responsibility: illustrated by Barbara Giobbi-Ebnöther ; translated from the German by     
Richard Hatch.
Vendor Info: Baker &amp; Taylor YBP Library Services (BKTY YANK) 32.00 Status:                 
active Note:               B&amp;T Title: Card College
Entry: 19960709
Update: 20091103
Provider: OCLC</note>
</mods>
<mods>
<titleInfo>
  <title>Book of magic.</title>
</titleInfo>
<typeOfResource>text</typeOfResource>
<genre authority="local">book</genre>
<genre authority="marcgt">book</genre>
<name type="personal">
  <namePart type="family">Warlock</namePart>
  <namePart type="given">Peter</namePart>
  <role>
    <roleTerm type="code" authority="marcrelator">aut</roleTerm>
  </role>
</name>
<originInfo>
  <publisher>London New York, Arco</publisher>
  <copyrightDate>1956</copyrightDate>
  <issuance>monographic</issuance>
</originInfo>
<subject>
  <topic>Magic tricks</topic>
</subject>
<note>External Resources: Cite This Item Search for versions with same title and author  
| Advanced options ...
Edition: [1st ed.]
Language: English
Class Descriptors: LC: GV1547; Dewey: 793.8
Entry: 19750729
Update: 20120116
Provider: OCLC</note>
</mods>
<mods>
<titleInfo>
  <title>The amateur magician's handbook,</title>
</titleInfo>
<typeOfResource>text</typeOfResource>
<genre authority="local">book</genre>
<genre authority="marcgt">book</genre>
<name type="personal">
  <namePart type="family">Hay, Henry</namePart>
  <namePart type="given"/>
  <role>
    <roleTerm type="code" authority="marcrelator">aut</roleTerm>
  </role>
</name>
<name type="personal">
  <namePart type="family">Mussey</namePart>
  <namePart type="given">June Barrows</namePart>
  <role>
    <roleTerm type="code" authority="marcrelator">aut</roleTerm>
  </role>
</name>
<originInfo>
  <publisher>New York, Crowell</publisher>
  <copyrightDate>1972</copyrightDate>
  <issuance>monographic</issuance>
</originInfo>
<identifier type="isbn">0690057113</identifier>
<subject>
  <topic>Magic tricks</topic>
</subject>
<note>External Resources: Cite This Item Search for versions with same title and author 
| Advanced options ...
Edition: 3d ed., rev. and expanded.
Language: English
Note(s): Bibliography: p. 365-373.
Class Descriptors: LC: GV1547; Dewey: 793.8
Responsibility: by Henry Hay. Photos. by Audrey Alley.
Vendor Info: Baker and Taylor (BTCP)
Entry: 19720814
Update: 20080829
Provider: OCLC</note>
</mods>
</modsCollection>
4

1 に答える 1

1

というわけで、参考文献のようなものです。それは、FileMaker でどのように使用するかによって異なります。基本的な FileMaker XSLT は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:mod="http://www.loc.gov/mods/v3"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
      <ERRORCODE>0</ERRORCODE>
      <PRODUCT NAME="N/A" BUILD="N/A" VERSION="N/A"/>
      <DATABASE NAME="N/A" LAYOUT="N/A" RECORDS="1"
        DATEFORMAT="M/d/yyyy" TIMEFORMAT="h:mm:ss a"/>
      <METADATA>
        <!-- 1 -->
        <FIELD EMPTYOK="YES" MAXREPEAT="1" TYPE="NUMBER"
            NAME="Title" />
        <!-- More field definitions -->
      </METADATA>
      <RESULTSET>
        <xsl:for-each select="mod:modsCollection/mod:mods">
          <ROW MODID="1" RECORDID="1">
            <!-- 1. Title -->
            <COL>
              <DATA>
                <xsl:value-of select="mod:titleInfo/mod:title" />
              </DATA>
            </COL>
            <!-- More COL's in the same order as the fields -->
          </ROW>
        </xsl:for-each>
      </RESULTSET>
    </FMPXMLRESULT>
  </xsl:template>
</xsl:stylesheet>

これはタイトルをインポートする必要があります。はC のようtemplate match="/"なもので、(典型的な) エントリ ポイントです。main()そこに到達したら、結果の XML のスケルトンを出力します。

行に到達したら、XSLT 命令を使用して、テーブル内のレコードとなる要素をループします。私たちの場合、これらはmod:modsCollection/mod:mods、つまり参考文献のエントリですが、何でもかまいません。たとえば、すべての名前をループできます ( //mod:name)。mod:プレフィックスは、Zotero 名前空間 ( http://www.loc.gov/mods/v3)のショートカットです。元の XML ではデフォルトの名前空間として指定されているため、接頭辞なしで使用されますが、XSLT では FileMaker XML 名前空間をデフォルトとして使用し ( で指定方法を参照FMPXMLRESULT)、Zotero 要素を参照する接頭辞を定義します。

ループ式は XPath 式です。グーグルで完全な仕様を見つけてください。ここでは、単純な式を使用してすべてのmods要素を取得しました。それらを調べると、さらに FileMaker ステーショナリー ( ROW) を出力し、次に各フィールドについてもCOLおよびを出力しDATAます。ここで、最初のフィールドについて、DATAタイトル データを読み取る必要があります。私はmods要素にいるので、データへのパスはtitleInfo/title; 値を取得するには、xsl:value-of要素を使用します。

さらにフィールドをインポートするには、フィールド定義と を追加しますCOL。他のもの (例: エントリではなくすべての人) をインポートするには、 で別の式を使用しxsl:for-eachます。これで始められるはずです:)

于 2012-08-26T22:16:15.223 に答える