if <variable> tests for the presence of a variable.
http://citationstyles.org/downloads/specification.html#choose
So the above means:
If an item is a chapter or a conference paper:
if the item has an author
print the editor here
if the item has either and editor or an author (match="any")
print the translator here
The purpose of this is that you don't want the editor printed here if it
has been used at the start of the citation.
This could almost certainly be simplified/improved using substitute -
http://citationstyles.org/downloads/specification.html#substitute
last time I looked at the style I didn't have the time to check and fix
that (and the functionality would be the same, it's just cleaner with
substitute) - so
it might not be the best example. For a more typical use, see e.g. this,
which prints the type of material - Web vs. Print - for MLA style:
<choose>
<if variable="URL DOI" match="any">
<text variable="archive" prefix=" " suffix=". "/>
<text value="Web" prefix=" "/>
<text prefix=". " suffix="." macro="access"/>
</if>
<else>
<text value="Print" prefix=" "/>
</else>
</choose>
In other words, if an item has either the variable DOI, or the variable
URL, it's considered a web source and the style puts "Web." at the end of
the citation, otherwise it's considered print and the style puts "Print" at
the end of the citation. (if you look at the style it tests for a range of
other materials - film, audio recording, etc. - first. This is just to
illustrate the idea.
Hope that helps.
On Tue, Jan 22, 2013 at 7:35 AM, jda <[email protected]> wrote:
>
> I'm toying with writing a CSL parser and have found this to be rather
> difficult. I've been able to deal with relatively simple styles, like JBC,
> but find the more complex ones baffling. For example, the Chicago styles.
> Here's one macro from the Chicago Author-Date style:
>
> <macro name="secondary-contributors">
> <choose>
> <if type="chapter paper-conference" match="none">
> <group delimiter=". ">
> <choose>
> <if variable="author">
> <names variable="editor">
> <label form="verb" text-case="capitalize-first" suffix=" "
> plural="never"/>
> <name and="text" delimiter=", "/>
> </names>
> </if>
> </choose>
> <choose>
> <if variable="author editor" match="any">
> <names variable="translator">
> <label form="verb" text-case="capitalize-first" suffix=" "
> plural="never"/>
> <name and="text" delimiter=", "/>
> </names>
> </if>
> </choose>
> </group>
> </if>
> </choose>
> </macro>
>
> Could someone translate the logic of this macro into English for me?
>
> The <if type= node is self-explanatory. However, what does <if
> variable="author"> mean? To me it would seem to mean
>
> if type is a chapter or paper-conference
>
> if an author is to be output
>
> substitute the editor
>
>
> but that makes no sense. Also, what does <if variable="author editor"
> match="any"> mean?
>
> I appreciate any explanation someone on the list can give.
>
> Thanks,
>
> Jon
>
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. ON SALE this month only -- learn more at:
> http://p.sf.net/sfu/learnnow-d2d
> _______________________________________________
> xbiblio-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/xbiblio-devel
>
--
Sebastian Karcher
Ph.D. Candidate
Department of Political Science
Northwestern University
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
xbiblio-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbiblio-devel