<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUUGQ306eyp7ImA9WhVTFE0.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969</id><updated>2012-02-27T22:27:02.313-06:00</updated><title>Gepsio</title><subtitle type="html">The official blog for the Gepsio open source project. Gepsio is a .NET-based document object model for XBRL documents. Visit the Gepsio project site at http://gepsio.codeplex.com.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://gepsio.blogspot.com/" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Gepsio" /><feedburner:info uri="gepsio" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0EARHg-eCp7ImA9WhVTEE0.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-1119361682355166462</id><published>2012-02-23T08:00:00.004-06:00</published><updated>2012-02-23T08:00:45.650-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-23T08:00:45.650-06:00</app:edited><title>Gepsio Entered Into XBRL US Challenge</title><content type="html">The folks over at &lt;a href="http://www.xbrl.us/Pages/default.aspx"&gt;XBRL US&lt;/a&gt; have launched a contest called the &lt;a href="http://www.xbrl.us/research/pages/challenge.aspx"&gt;XBRL Challenge&lt;/a&gt;, which they have billed as "&lt;em&gt;a contest that invites participants to contribute open source analytical applications for investors that leverage corporate XBRL data&lt;/em&gt;". I have entered Gepsio into the contest. I really don't think it has a chance to win, since it's more of an "engine" or "framework" than a full ready-to-use application, but I figured that the exposure might be a good thing.&lt;br /&gt;
&lt;br /&gt;
The judges have asked all of us entrants to answer a couple of questions about our perception of our entries to the contest, and I thought that I would share my answers here:&lt;br /&gt;
&lt;em&gt;&lt;blockquote class="tr_bq"&gt;
&lt;em&gt;&lt;strong&gt;What deficiency or opportunity did you see - with respect to published financial data analysis - that drove your idea for an application using XBRL?&lt;/strong&gt;The relatively high barrier to entry. Building an XBRL-aware application today means that XML parsing code must be written, after which the XBRL validation rules must be encoded and tested. The opportunity I see with Gepsio is one in which the parsing and validation logic is packaged in a ready-to-use assembly that can be picked up and used by others to build application and value-added logic, thereby dramatically lowering the barrier to entry for XBRL developers. It also opens the door for PowerShell users to write “XBRL scripts” without ever encoding low-level XML and XBRL details.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;&lt;em&gt;&lt;strong&gt;What was the moment you enjoyed most during this competition?&lt;/strong&gt;I have enjoyed seeing Gepsio used and embraced by others. I put Gepsio up on Codeplex to little fanfare, unsure of what might become of it. To see it used by others – to see the project followed by other users on Codeplex; to see Gepsio mentioned in XBRL answers on the Stack Overflow Web site; to get emails from people using it – all of it makes the effort worthwhile. It’s validation that what Gepsio offers fills a need as yet untapped by the current developer tool space, and that is very gratifying.&lt;/em&gt;&lt;/blockquote&gt;
&lt;/em&gt;The winner of the contest is judged by a panel of judges, although a People's Choice vote is also being held for another week or so. If you feel compelled to vote for Gepsio in this People's Choice competition, head on over to the &lt;a href="http://www.xbrl.us/research/pages/challenge.aspx"&gt;XBRL US Challenge&lt;/a&gt; page and click on the "Vote for the Best XBRL App" link in the upper right-hand section titled "XBRL Challenge Judges".&lt;br /&gt;
&lt;br /&gt;
Good luck to all Challenge participats!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-1119361682355166462?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/enaifKVFH7eY9XXy0mr8wjKMdOc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enaifKVFH7eY9XXy0mr8wjKMdOc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/enaifKVFH7eY9XXy0mr8wjKMdOc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/enaifKVFH7eY9XXy0mr8wjKMdOc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/l0ufJNYUbc4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/1119361682355166462/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2012/02/gepsio-entered-into-xbrl-us-challenge.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/1119361682355166462?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/1119361682355166462?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/l0ufJNYUbc4/gepsio-entered-into-xbrl-us-challenge.html" title="Gepsio Entered Into XBRL US Challenge" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2012/02/gepsio-entered-into-xbrl-us-challenge.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMRH8ycSp7ImA9WhRWGEs.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-8668763690874229978</id><published>2012-01-06T08:51:00.001-06:00</published><updated>2012-01-06T09:36:25.199-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T09:36:25.199-06:00</app:edited><title>Gepsio Nov 2011 CTP and iXBRL</title><content type="html">In the discussion located &lt;a href="http://gepsio.codeplex.com/discussions/284709"&gt;here&lt;/a&gt;, a gentleman asked about &lt;a href="http://gepsio.codeplex.com/"&gt;Gepsio&lt;/a&gt;'s support for iXBRL after noting that iXBRL is coming up to speed in the UK. I mentioned that I would look into it, noting that I had structured Gepsio in such a way that a document was a collection of XBRL fragments, and that the design was put in place specifically to handle multiple XBRL fragments in a document, thereby supporting the iXBRL model of XBRL embedded within a larger XML document whose root was not necessarily an XBRL root.&lt;br /&gt;
&lt;br /&gt;
The gentleman with whom I had the conversation was very generous in supplying some iXBRL documents with which I could test Gepsio, and I used the following PowerShell script to load the sample and see what I could find out at a high level:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Add-Type -Path "C:\MyPathToGepsio\JeffFerguson.Gepsio.dll"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;$XbrlDoc = New-Object -TypeName JeffFerguson.Gepsio.XbrlDocument&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;$DocumentLocation = "sample-ixbrl.xml"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Write-Host "Loading and validating" $DocumentLocation"..."&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;$XbrlDoc.Load($DocumentLocation)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Write-Host "Loaded." $XbrlDoc.XbrlFragments.Count "fragments in document."&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;foreach($XbrlFragment in $XbrlDoc.XbrlFragments)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host $XbrlFragment.Facts.Count "facts in fragment."&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host $XbrlFragment.Units.Count "units in fragment."&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host $XbrlFragment.Contexts.Count "contexts in fragment."&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteItemAndValue $XbrlFragment "EntityRegistrantName"&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteItemAndValue $XbrlFragment "TradingSymbol"&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteItemAndValue $XbrlFragment "DocumentPeriodEndDate"&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Function WriteItemAndValue&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; param($fragment, $name)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $FoundItem = $fragment.Facts | Where-Object { $_.Name -eq $name }&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host $name ": " $FoundItem.Value&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
As it turns out, I have good news and bad news:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The good news is that Gepsio parses the ful document at the XML level without errors, even when the root of the XML document is not an &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;xbrl&amp;gt;&lt;/span&gt; root.&lt;/li&gt;
&lt;li&gt;The bad news is that Gepsio didn't find any XBRL fragments in the supplied document, despite the document's valid iXBRL tagging.&lt;/li&gt;
&lt;/ul&gt;
Gepsio makes an assumption that iXBRL fragments are marked up using the same schema as a full XBRL document, which is not the case. The iXBRL tagging structure, documented &lt;a href="http://www.xbrl.org/Specification/inlineXBRL-part1/CR-2009-11-16/inlineXBRL-part1-CR-2009-11-16.html"&gt;here&lt;/a&gt;, is not supported by Gepsio in the Nov 2011 CTP, and it will be my job to correct that flaw.&lt;br /&gt;
&lt;br /&gt;
My plan is to work on Gepsio's iXBRL support this month to see how far I get. I hope to report back on my progress soon. In my ideal world, I would like to release a new CTP of Gepsio this month that includes iXBRL support.&lt;br /&gt;
&lt;br /&gt;
Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-8668763690874229978?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oR9upzkUfQNXBC4JYXEDziLACyA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oR9upzkUfQNXBC4JYXEDziLACyA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oR9upzkUfQNXBC4JYXEDziLACyA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oR9upzkUfQNXBC4JYXEDziLACyA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/E84awAI3id8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/8668763690874229978/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2012/01/gepsio-nov-2011-ctp-and-ixbrl.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8668763690874229978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8668763690874229978?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/E84awAI3id8/gepsio-nov-2011-ctp-and-ixbrl.html" title="Gepsio Nov 2011 CTP and iXBRL" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2012/01/gepsio-nov-2011-ctp-and-ixbrl.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMCQn0-eCp7ImA9WhRSFUU.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-781580981712404314</id><published>2011-11-17T21:54:00.001-06:00</published><updated>2011-11-17T21:54:23.350-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-17T21:54:23.350-06:00</app:edited><title>Easy XBRL Scripting with Gepsio and PowerShell</title><content type="html">&lt;p&gt;Microsoft’s &lt;a href="http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx" target="_blank"&gt;PowerShell&lt;/a&gt; scripting environment provides full support for using .NET objects, which makes it an ideal scripting language for use with &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt;. PowerShell and Gepsio can work together to make working with &lt;a href="http://www.xbrl.org" target="_blank"&gt;XBRL&lt;/a&gt; data very easy.&lt;/p&gt; &lt;p&gt;Here is a simple PowerShell script that pulls an XBRL document from the SEC site and displays some simple information about the document:&lt;/p&gt;&lt;pre class="csharpcode"&gt;Add-Type -Path &lt;span class="str"&gt;"C:\GepsioPath\JeffFerguson.Gepsio.dll"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$XbrlDoc = New-Object -TypeName JeffFerguson.Gepsio.XbrlDocument&lt;br /&gt;&lt;br /&gt;$DocumentLocation = &lt;span class="str"&gt;"http://www.sec.gov/Archives/edgar/data/21344/000104746911006790/ko-20110701.xml"&lt;/span&gt;&lt;br /&gt;Write-Host &lt;span class="str"&gt;"Loading and validating"&lt;/span&gt; $DocumentLocation&lt;span class="str"&gt;"..."&lt;/span&gt;&lt;br /&gt;$XbrlDoc.Load($DocumentLocation)&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt;($CurrentFragment &lt;span class="kwrd"&gt;in&lt;/span&gt; $XbrlDoc.XbrlFragments)&lt;br /&gt;{&lt;br /&gt;    Write-Host $CurrentFragment.Facts.Count &lt;span class="str"&gt;"facts in fragment."&lt;/span&gt;&lt;br /&gt;    Write-Host $CurrentFragment.Units.Count &lt;span class="str"&gt;"units in fragment."&lt;/span&gt;&lt;br /&gt;    Write-Host $CurrentFragment.Contexts.Count &lt;span class="str"&gt;"contexts in fragment."&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This script gives the following output:&lt;/p&gt;&lt;pre class="csharpcode"&gt;Loading and validating http://www.sec.gov/Archives/edgar/data/21344/000104746911006790/ko-20110701.xml...&lt;br /&gt;1081 facts in fragment.&lt;br /&gt;4 units in fragment.&lt;br /&gt;281 contexts in fragment.&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let’s take a look at the script in more detail. It begins by adding the Gepsio runtime into the PowerShell environment with a call to the Add-Type command:&lt;/p&gt;&lt;pre class="csharpcode"&gt;Add-Type -Path &lt;span class="str"&gt;"C:\GepsioPath\JeffFerguson.Gepsio.dll"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Every PowerShell script that uses Gepsio will need to use this command so that the Gepsio runtime can be used by the PowerShell script.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once Gepsio is loaded, a new Gepsio XbrlDocument object is created and saved in a variable:&lt;/p&gt;&lt;pre class="csharpcode"&gt;$XbrlDoc = New-Object -TypeName JeffFerguson.Gepsio.XbrlDocument&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This statement states that a new .NET object of type JeffFerguson.Gepsio.XbrlDocument, which is the Gepsio type that represents an XBRL document, should be created and be made available in a PowerShell script variable called $XbrlDoc.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One the new XbrlDocument object is created, another PowerShell variable is created to describe the address of the document to be loaded:&lt;/p&gt;&lt;pre class="csharpcode"&gt;$DocumentLocation = &lt;span class="str"&gt;"http://www.sec.gov/Archives/edgar/data/21344/000104746911006790/ko-20110701.xml"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This statement creates a new PowerShell script variable called $DocumentLocation and assigns it a string of “http://www.sec.gov/Archives/edgar/data/21344/000104746911006790/ko-20110701.xml”. This is the address of the XBRL document that the script should load.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once the address of the XBRL document is made available, it is loaded into the Gepsio XbrlDocument object through a call to the XbrlDocument.Load() method:&lt;/p&gt;&lt;pre class="csharpcode"&gt;$XbrlDoc.Load($DocumentLocation)&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Gepsio treats an XbrlDocument as a collection of XbrlFragment objects. Each XBRL fragment is XML data having the &amp;lt;xbrl&amp;gt; tag as its root. Generally, an XBRL document will have only one XbrlFragment, although Gepsio supports documents that may have more than one fragment. The script iterates through each fragment in the document and examines the Xbrlfragment object’s three main collections: Facts, Units and Contexts. Each collection has a property called Count, and each of these counts are displayed as script output:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt;($CurrentFragment &lt;span class="kwrd"&gt;in&lt;/span&gt; $XbrlDoc.XbrlFragments)&lt;br /&gt;{&lt;br /&gt;    Write-Host $CurrentFragment.Facts.Count &lt;span class="str"&gt;"facts in fragment."&lt;/span&gt;&lt;br /&gt;    Write-Host $CurrentFragment.Units.Count &lt;span class="str"&gt;"units in fragment."&lt;/span&gt;&lt;br /&gt;    Write-Host $CurrentFragment.Contexts.Count &lt;span class="str"&gt;"contexts in fragment."&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Future blog posts will explore PowerShell’s access to the Gepsio runtime in more detail.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-781580981712404314?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C-xGGR9D4HwaFEmudP4fXb7sHog/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-xGGR9D4HwaFEmudP4fXb7sHog/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C-xGGR9D4HwaFEmudP4fXb7sHog/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C-xGGR9D4HwaFEmudP4fXb7sHog/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/lwhkv5FrZAo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/781580981712404314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/11/microsofts-powershell-scripting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/781580981712404314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/781580981712404314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/lwhkv5FrZAo/microsofts-powershell-scripting.html" title="Easy XBRL Scripting with Gepsio and PowerShell" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/11/microsofts-powershell-scripting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YMQ389eCp7ImA9WhRTF00.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-5317931471891516136</id><published>2011-11-07T17:39:00.001-06:00</published><updated>2011-11-07T17:39:42.160-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T17:39:42.160-06:00</app:edited><title>Gepsio Available as a NuGet Package</title><content type="html">&lt;p&gt;Beginning with the recently-released Nov 2011 CTP, &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt; is now available via &lt;a href="http://www.nuget.org/" target="_blank"&gt;NuGet&lt;/a&gt; as well as from the project Web site. The name of the NuGet package is JeffFerguson.Gepsio, so, from within the Package Manager Console in Visual Studio 2010, you can execute the following command:&lt;/p&gt; &lt;p&gt;PM&amp;gt; &lt;strong&gt;Install-Package JeffFerguson.Gepsio&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;You will also find it from the “Manage NuGet Packages” submenu item from the “Library Package Manager” menu item on the Visual Studio 2010 “Tools” menu. Just search for &lt;em&gt;Gepsio&lt;/em&gt;:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-RiXOUorF3MI/TrhsPE0fbmI/AAAAAAAABcE/bGTkjIrpe8U/s1600-h/image%25255B7%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-npMjKJS94j8/TrhsPQ6kHtI/AAAAAAAABcM/VtCNU_ONmWg/image_thumb%25255B5%25255D.png?imgmax=800" width="507" height="339"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-5317931471891516136?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vld4D76n4tRL-MLrNpnceuUQR-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vld4D76n4tRL-MLrNpnceuUQR-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vld4D76n4tRL-MLrNpnceuUQR-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vld4D76n4tRL-MLrNpnceuUQR-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/h5vMGQhGJtk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/5317931471891516136/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/11/gepsio-available-as-nuget-package.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/5317931471891516136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/5317931471891516136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/h5vMGQhGJtk/gepsio-available-as-nuget-package.html" title="Gepsio Available as a NuGet Package" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-npMjKJS94j8/TrhsPQ6kHtI/AAAAAAAABcM/VtCNU_ONmWg/s72-c/image_thumb%25255B5%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/11/gepsio-available-as-nuget-package.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYGRXY-eCp7ImA9WhRTEUQ.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-3671538896907502633</id><published>2011-11-01T19:35:00.001-05:00</published><updated>2011-11-01T19:35:24.850-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T19:35:24.850-05:00</app:edited><title>Nov 2011 CTP Released</title><content type="html">&lt;p&gt;I am pleased to announce the Nov 2011 CTP release of &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt;. This release passes 191 of the tests in the XBRL-CONF-CR3-2007-03-05 conformance suite (which is 32 more than the 159 tests that passed in the last CTP release). This release builds on the previous CTP release in the following ways:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;First Class Support For Items and Tuples.&lt;/strong&gt; Previous releases of Gepsio used a single class called Fact to represent a fact in an &lt;a href="http://www.xbrl.org" target="_blank"&gt;XBRL&lt;/a&gt; fragment. Starting with this release, the Fact class is a base class for two derived classes: one called Item and the other called Tuple. The Facts collection available from an XbrlFragment object is a collection of Fact objects, and each Fact in the collection could, in fact, be either an Item object or a Tuple object. This work brings the XBRL concept of tuples in as a first-class citizen of the Gepsio object model.  &lt;li&gt;&lt;strong&gt;Complete Support For Essence Aliases.&lt;/strong&gt; This release of Gepsio passes all of the conformance suite tests relating to the concept of essence aliases.  &lt;li&gt;&lt;strong&gt;Better Support For Calculation Arc Validation.&lt;/strong&gt; Gepsio now has a better validation engine for calculation arcs. This release now includes better handling of context-equals and unit-equals items, items with a nil value, and better support for contributing concept items found in tuples.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Download this latest version (numbered 2.1.0.5) at &lt;a href="http://gepsio.codeplex.com"&gt;http://gepsio.codeplex.com&lt;/a&gt; and click the “Downloads” tab to grab the latest release.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-3671538896907502633?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AhpXS9mioS1nHfggtCwBGDr9yC4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AhpXS9mioS1nHfggtCwBGDr9yC4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AhpXS9mioS1nHfggtCwBGDr9yC4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AhpXS9mioS1nHfggtCwBGDr9yC4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/CTlPK2XDduk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/3671538896907502633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/11/nov-2011-ctp-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3671538896907502633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3671538896907502633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/CTlPK2XDduk/nov-2011-ctp-released.html" title="Nov 2011 CTP Released" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/11/nov-2011-ctp-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MHQn8-fSp7ImA9WhdaEU8.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-6106675189652944274</id><published>2011-10-20T09:37:00.001-05:00</published><updated>2011-10-20T09:37:13.155-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T09:37:13.155-05:00</app:edited><title>Support Added for Calculation Arcs with Destination Labels Referencing Multiple Locators</title><content type="html">&lt;p&gt;I have just checked in a change to &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt; that correctly validates calculation arcs that use destination labels that reference more than one locator.&lt;/p&gt; &lt;p&gt;Take a look at the following calculation link:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;calculationLink&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="extended"&lt;/span&gt; &lt;span class="attr"&gt;xlink:role&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/role/link"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="397-ABC.xsd#A"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="summationItem"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="397-ABC.xsd#B"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="contributingItem"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="397-ABC.xsd#C"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="contributingItem"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;calculationArc&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="arc"&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;xlink:arcrole&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/arcrole/summation-item"&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;xlink:from&lt;/span&gt;&lt;span class="kwrd"&gt;="summationItem"&lt;/span&gt;&lt;br /&gt;        &lt;span class="attr"&gt;xlink:to&lt;/span&gt;&lt;span class="kwrd"&gt;="contributingItem"&lt;/span&gt; &lt;span class="attr"&gt;weight&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;calculationLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This example, taken from the 397.00 conformance test in the XBRL-CONF-CR3-2007-03-05 conformance suite, defines a calculation arc that arcs from “summationItem” to “contributingItem”. The issue here is that there are two locators that use the “contributingItem” label:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;397-ABC.xsd#B&lt;/li&gt;&lt;br /&gt;&lt;li&gt;397-ABC.xsd#C&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Both of these locators must participate in the calculation arc. In the current CTP of Gepsio, only the fact referenced by the first locator is used to validate the calculation arc. With the new code, both facts referenced by both locators are used to validate the calculation arc.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This improved functionality will be available in the next CTP to released (which I am currently targeting for release in the next week or so).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-6106675189652944274?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IxGgySdv83R9V5IhSPxHLuPdfyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IxGgySdv83R9V5IhSPxHLuPdfyk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IxGgySdv83R9V5IhSPxHLuPdfyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IxGgySdv83R9V5IhSPxHLuPdfyk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/ZuWTI1WYIWg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/6106675189652944274/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/10/support-added-for-calculation-arcs-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6106675189652944274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6106675189652944274?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/ZuWTI1WYIWg/support-added-for-calculation-arcs-with.html" title="Support Added for Calculation Arcs with Destination Labels Referencing Multiple Locators" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/10/support-added-for-calculation-arcs-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNQXk5eSp7ImA9WhdbE0s.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-458129725983817531</id><published>2011-10-11T14:28:00.001-05:00</published><updated>2011-10-11T14:28:10.721-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-11T14:28:10.721-05:00</app:edited><title>Calculation Validation Location Bug Fixed</title><content type="html">&lt;p&gt;I have checked in code that fixes a bug in the validation of calculation arc values in &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In the current CTP, the value of a xlink:href attribute of a locator element for a calculation arc is used to find the appropriate contributing concept. This is in error; in fact, the xlink:label attribute must be used instead. This bug hasn’t been caught until now because many of the &lt;a href="http://www.xbrl.org" target="_blank"&gt;XBRL&lt;/a&gt; documents in XBRL-CONF-CR3-2007-03-05 conformance suite use the same value for the xlink:href and label attributes. The 305.07 test, for example, references a calculation linkbase document that includes markup as follows:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="305_07_decimals_test.xsd#decimals_Land"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="decimals_Land"&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;As you can see, the resource ID of the value of the xlink:href attribute (decimals_Land) matches the value of the xlink:label attribute (decimals_Land), so it didn’t matter which value Gepsio used to find the correct element.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The 395.01 test, however, uses different location markup:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="SummationItem.xsd#CurrentAsset"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="labelCurrentAsset"&lt;/span&gt;&lt;br /&gt;    &lt;span class="attr"&gt;xlink:title&lt;/span&gt;&lt;span class="kwrd"&gt;="CurrentAsset"&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In this markup, the resource ID of the value of the xlink:href attribute (CurrentAsset) does not match the value of the xlink:label attribute (labelCurrentAsset) and Gepsio’s use of the resource ID is in error. Gepsio must use the value of the xlink:label attribute to find the correct element.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This bug has been fixed and will be available in the next CTP of Gepsio (which I am currently planning on releasing on Nov 01 2011).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-458129725983817531?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XQvVgANa08_BQ7v_BL2XzlqUkjE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XQvVgANa08_BQ7v_BL2XzlqUkjE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XQvVgANa08_BQ7v_BL2XzlqUkjE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XQvVgANa08_BQ7v_BL2XzlqUkjE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/mG02Wyixcvk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/458129725983817531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/10/calculation-validation-location-bug.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/458129725983817531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/458129725983817531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/mG02Wyixcvk/calculation-validation-location-bug.html" title="Calculation Validation Location Bug Fixed" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/10/calculation-validation-location-bug.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QCSHc_eSp7ImA9WhdbEE0.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-3026285712821790531</id><published>2011-10-07T10:29:00.001-05:00</published><updated>2011-10-07T10:29:29.941-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-07T10:29:29.941-05:00</app:edited><title>Essence Alias Support Complete</title><content type="html">&lt;p&gt;I have just checked in code that completes &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt;’s support of the &lt;a href="http://www.xbrl.org" target="_blank"&gt;XBRL&lt;/a&gt; essence alias concept. All of the essence alias conformance tests found in the XBRL-CONF-CR3-2007-03-05 conformance test suite (numbered with the 392 prefix) now behave as expected when parsed by Gepsio.&lt;/p&gt; &lt;p&gt;The next CTP of Gepsio will include all of this work and will correctly validate essence aliases found in XBRL documents.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-3026285712821790531?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dsqGrWhMEnGxF7jIqFjC_5_mEms/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dsqGrWhMEnGxF7jIqFjC_5_mEms/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dsqGrWhMEnGxF7jIqFjC_5_mEms/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dsqGrWhMEnGxF7jIqFjC_5_mEms/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/k2XVHkgTBcs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/3026285712821790531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/10/essence-alias-support-complete.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3026285712821790531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3026285712821790531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/k2XVHkgTBcs/essence-alias-support-complete.html" title="Essence Alias Support Complete" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/10/essence-alias-support-complete.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8CSHcycSp7ImA9WhdUGU8.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-6248315241344750247</id><published>2011-10-06T14:04:00.001-05:00</published><updated>2011-10-06T14:04:29.999-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T14:04:29.999-05:00</app:edited><title>Dates Available For Instant Period Contexts</title><content type="html">&lt;p&gt;I have just checked in a change to the Context class that will appear in the next CTP. The Context class now includes a public property called InstantDate, which exposes a DateTime value. The value of the InstantDate property for a Context reflects the date given for an instant period. This value is valid only when the Context reflects an Instant period. You will be able to write code like the following:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt;(CurrentContext.InstantPeriod == &lt;span class="kwrd"&gt;true&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    var ContextDate = CurrentContext.InstantDate;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-6248315241344750247?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FIke-PwWfr14IoEnXylP2fUrgIA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FIke-PwWfr14IoEnXylP2fUrgIA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FIke-PwWfr14IoEnXylP2fUrgIA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FIke-PwWfr14IoEnXylP2fUrgIA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/OTHTdnENIN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/6248315241344750247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/10/dates-available-for-instant-period.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6248315241344750247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6248315241344750247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/OTHTdnENIN0/dates-available-for-instant-period.html" title="Dates Available For Instant Period Contexts" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/10/dates-available-for-instant-period.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIBSX89fCp7ImA9WhdUFEw.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-4037270701411444662</id><published>2011-09-30T15:12:00.001-05:00</published><updated>2011-09-30T15:12:38.164-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-30T15:12:38.164-05:00</app:edited><title>Facts, Items and Tuples</title><content type="html">&lt;p&gt;The current CTP of &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt; (which, as of this writing, is the Feb 2011 CTP) exposes a collection of Fact objects as a property in an XbrlFragment. With this arrangement, you can write code like this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;var MyXbrlDocument = &lt;span class="kwrd"&gt;new&lt;/span&gt; XbrlDocument();&lt;br /&gt;MyXbrlDocument.Load(&lt;span class="str"&gt;"xbrldata.xml"&lt;/span&gt;);&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt;(var CurrentFragment &lt;span class="kwrd"&gt;in&lt;/span&gt; MyXbrlDocument.XbrlFragments)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt;(var CurrentFact &lt;span class="kwrd"&gt;in&lt;/span&gt; CurrentFragment.Facts)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;// Ooh! An XBRL fact!&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I have been working on adding support for tuples in the next CTP, and, in doing so, have come to realize that this scenario is incomplete.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The Fact class in the current CTP is a standalone class. It doesn’t inherit from any other class, nor is it a base class for a derived class. The issue with the current CTP is that the only facts that it reads and exposes are single-value facts. Any tuples in the &lt;a href="http://www.xbrl.org" target="_blank"&gt;XBRL&lt;/a&gt; document are ignored and not included as a Fact instance.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In actuality, the XBRL specification supports two types of facts:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;single-value facts, called &lt;em&gt;items&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;multiple-value facts, called &lt;em&gt;tuples&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;The next CTP will provide support for tuples, and, as such, Gepsio’s understanding of a fact will be more complete. In the next CTP, the Fact class will remain, but it will serve as a base class for a new class called Item and another new class called Tuple:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Fact&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;// magic happens here&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Item : Fact&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;// more magic happens here&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Tuple : Fact&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;// even more magic happens here&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Fact collections will remain in place, but Fact items can be examined to determine whether they are, in fact, items or tuples. This updated design will allow Gepsio to detect tuples in loaded XBRL documents and perform the appropriate work needed to expose tuples to Gepsio clients.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-4037270701411444662?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QtSn3N1I7YmV9Eusgxavc96BxN4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QtSn3N1I7YmV9Eusgxavc96BxN4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QtSn3N1I7YmV9Eusgxavc96BxN4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QtSn3N1I7YmV9Eusgxavc96BxN4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/baIzNccQQnw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/4037270701411444662/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/09/facts-items-and-tuples.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/4037270701411444662?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/4037270701411444662?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/baIzNccQQnw/facts-items-and-tuples.html" title="Facts, Items and Tuples" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/09/facts-items-and-tuples.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMQX48cCp7ImA9WhdUE0w.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-139196812886631909</id><published>2011-09-29T10:31:00.001-05:00</published><updated>2011-09-29T10:31:20.078-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T10:31:20.078-05:00</app:edited><title>Rounded Values of Essence Aliased Facts Now Checked</title><content type="html">&lt;p&gt;I have just checked in code that will be released with the next CTP of &lt;a href="http://gepsio.codeplex.com" target="_blank"&gt;Gepsio&lt;/a&gt;. The code validates the rounded values (that is, fact values with any applicable rounding and truncation applied) of essence aliased facts and throws an exception if those values do not match.&lt;/p&gt; &lt;p&gt;For example, consider the following XBRL document:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xbrl&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/instance"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:link&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/linkbase"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:xlink&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xlink"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:example&lt;/span&gt;&lt;span class="kwrd"&gt;="http://example.com/xbrl/taxonomy/EssenceAlias"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:iso4217&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/iso4217"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:xsi&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt; &lt;span class="attr"&gt;xsi:schemaLocation&lt;/span&gt;&lt;span class="kwrd"&gt;="http://example.com/xbrl/taxonomy/EssenceAlias EssenceAlias.xsd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link:schemaRef&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="EssenceAlias.xsd"&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="simple"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;unit&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="u1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;measure&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;iso4217:USD&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;measure&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;unit&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;context&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="c1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;entity&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;identifier&lt;/span&gt; &lt;span class="attr"&gt;scheme&lt;/span&gt;&lt;span class="kwrd"&gt;="www.example.com"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;example&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;identifier&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;entity&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;period&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;instant&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2003-03-31&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;instant&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;period&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;context&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;example:CurrentDeferredIncomeTaxExpense&lt;/span&gt; &lt;span class="attr"&gt;contextRef&lt;/span&gt;&lt;span class="kwrd"&gt;="c1"&lt;/span&gt; &lt;span class="attr"&gt;unitRef&lt;/span&gt;&lt;span class="kwrd"&gt;="u1"&lt;/span&gt; &lt;span class="attr"&gt;precision&lt;/span&gt;&lt;span class="kwrd"&gt;="4"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;100.0&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;example:CurrentDeferredIncomeTaxExpense&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;example:ForeignDomesticIncomeTaxExpense&lt;/span&gt; &lt;span class="attr"&gt;contextRef&lt;/span&gt;&lt;span class="kwrd"&gt;="c1"&lt;/span&gt; &lt;span class="attr"&gt;unitRef&lt;/span&gt;&lt;span class="kwrd"&gt;="u1"&lt;/span&gt; &lt;span class="attr"&gt;precision&lt;/span&gt;&lt;span class="kwrd"&gt;="3"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;100&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;example:ForeignDomesticIncomeTaxExpense&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;example:TaxExpense&lt;/span&gt; &lt;span class="attr"&gt;contextRef&lt;/span&gt;&lt;span class="kwrd"&gt;="c1"&lt;/span&gt; &lt;span class="attr"&gt;unitRef&lt;/span&gt;&lt;span class="kwrd"&gt;="u1"&lt;/span&gt; &lt;span class="attr"&gt;precision&lt;/span&gt;&lt;span class="kwrd"&gt;="3"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;200&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;example:TaxExpense&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;xbrl&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now suppose that the CurrentDeferredIncomeTaxExpense and TaxExpense facts are paired in an essence alias relationship, as shown in the following linkbase document:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="1.0"&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;="UTF-8"&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;linkbase&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/linkbase"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:xbrll&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/linkbase"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:xlink&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xlink"&lt;/span&gt; &lt;span class="attr"&gt;xmlns:xsi&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt; &lt;span class="attr"&gt;xsi:schemaLocation&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/linkbase ../lib/xbrl-linkbase-2003-12-31.xsd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;definitionLink&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="extended"&lt;/span&gt; &lt;span class="attr"&gt;xlink:role&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/role/link"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="EssenceAlias.xsd#TaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="labelTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:title&lt;/span&gt;&lt;span class="kwrd"&gt;="TaxExpense"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="EssenceAlias.xsd#ForeignDomesticIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="labelForeignDomesticIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:title&lt;/span&gt;&lt;span class="kwrd"&gt;="ForeignDomesticIncomeTaxExpense"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;loc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="locator"&lt;/span&gt; &lt;span class="attr"&gt;xlink:href&lt;/span&gt;&lt;span class="kwrd"&gt;="EssenceAlias.xsd#CurrentDeferredIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:label&lt;/span&gt;&lt;span class="kwrd"&gt;="labelCurrentDeferredIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:title&lt;/span&gt;&lt;span class="kwrd"&gt;="CurrentDeferredIncomeTaxExpense"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;definitionArc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="arc"&lt;/span&gt; &lt;span class="attr"&gt;xlink:arcrole&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/arcrole/essence-alias"&lt;/span&gt; &lt;span class="attr"&gt;xlink:from&lt;/span&gt;&lt;span class="kwrd"&gt;="labelTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:to&lt;/span&gt;&lt;span class="kwrd"&gt;="labelCurrentDeferredIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;priority&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;definitionArc&lt;/span&gt; &lt;span class="attr"&gt;xlink:type&lt;/span&gt;&lt;span class="kwrd"&gt;="arc"&lt;/span&gt; &lt;span class="attr"&gt;xlink:arcrole&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.xbrl.org/2003/arcrole/essence-alias"&lt;/span&gt; &lt;span class="attr"&gt;xlink:from&lt;/span&gt;&lt;span class="kwrd"&gt;="labelTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;xlink:to&lt;/span&gt;&lt;span class="kwrd"&gt;="labelForeignDomesticIncomeTaxExpense"&lt;/span&gt; &lt;span class="attr"&gt;priority&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;definitionLink&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;linkbase&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The XBRL document is invalid, because the two facts are in an invalid essence alias relationship. The relationship is invalid because the rounded values of the facts differ. In the current CTP, this issue is not reported by Gepsio. Starting with the next CTP, this issue will be reported during validation through an XbrlException thrown back to the caller. The exception will contain a message describing the mismatched values. For the document above, Gepsio will provide a message that reads as follows:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Facts named TaxExpense are defined as being in an essence alias relationship with facts named CurrentDeferredIncomeTaxExpense. However, the fact with ID&amp;nbsp; has a rounded value of 200, which differs from the fact with ID , which has a rounded value of 100. These two facts are therefore not in a valid essence alias relationship.&lt;/em&gt;&lt;br&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;(Gepsio will include the fact IDs in the message. The document shown above has no IDs for the facts, so that part of the message is empty.)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-139196812886631909?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fg7hMBfYnymtOB8ts_RzkXTR870/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fg7hMBfYnymtOB8ts_RzkXTR870/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fg7hMBfYnymtOB8ts_RzkXTR870/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fg7hMBfYnymtOB8ts_RzkXTR870/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/IOYm0P1MPgA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/139196812886631909/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/09/rounded-values-of-essence-aliased-facts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/139196812886631909?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/139196812886631909?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/IOYm0P1MPgA/rounded-values-of-essence-aliased-facts.html" title="Rounded Values of Essence Aliased Facts Now Checked" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/09/rounded-values-of-essence-aliased-facts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4ASHc7eCp7ImA9WhZWFkU.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-2215111054555302043</id><published>2011-05-17T20:42:00.000-05:00</published><updated>2011-05-17T20:42:29.900-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T20:42:29.900-05:00</app:edited><title>Calculation Arc Validation Errors Are Common?</title><content type="html">I ran across &lt;a href="http://twitter.com/#!/gobansaor/status/70191741122265089"&gt;this tweet&lt;/a&gt; from a gentleman named &lt;a href="http://twitter.com/gobansaor"&gt;Tom Gleeson&lt;/a&gt; about Gepsio's support for calculation arcs. Gepsio was failing to validate one of Oracle's XBRL documents posted through &lt;a href="http://www.edgar-online.com/"&gt;EDGAR&lt;/a&gt;. Although the Feb 2011 Gepsio CTP has passed the the Section 320 Calculation Binding tests in the&amp;nbsp;XBRL-CONF-CR3-2007-03-05 conformance suite, I was initially confident in Gepsio's calculation arc validation code, though I wouldn't be surprised to find an issue that the tests don't cover. I'm certainly not smug enough to say "Gepsio must be right and the document must be wrong".&lt;br /&gt;
&lt;br /&gt;
In this &lt;a href="http://twitter.com/#!/gobansaor/status/70409297443557377"&gt;follow-up tweet&lt;/a&gt;, Tom alludes to the fact that&amp;nbsp;Gepsio failed to validate one of the document's calculation arcs but also mentions that this is a "unfortunately very common" problem. In &lt;a href="http://twitter.com/#!/gobansaor/status/70452982004719618"&gt;another follow-up tweet&lt;/a&gt;, he mentions that this same data is viewable in&amp;nbsp;&lt;a href="http://arelle.org/"&gt;Arelle&lt;/a&gt; without any problems.&lt;br /&gt;
&lt;br /&gt;
I was intrigued by Tom's comment that calculation arc validation errors are a common problem. Since I am still learning about XBRL and the community in which it lives, I wanted to open some questions for discussion:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Are calculation arc validation errors a common problem within documents generated by the XBRL community, or is this simply an issue that will resolve itself as Gepsio matures?&lt;/li&gt;
&lt;li&gt;Would it be beneficial, as Tom suggests in a post, for Gepsio to support various "levels of correctness" whereby, in a more lenient validation mode, validation errors are overlooked?&lt;/li&gt;
&lt;/ol&gt;Your comments are welcome and encouraged! Simply add a comment to this blog post.&lt;br /&gt;
&lt;br /&gt;
I will mention that, in the general case, Gepsio validates the document after most (if not all) properties have been populated. This implies that, if you place a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;try&lt;/span&gt; exception block around the code that loads an XBRL document into Gepsio, and the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;catch&lt;/span&gt; block catches an &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;XbrlException&lt;/span&gt; instance that references a problem with the validation, your code may still be able to carry on with at least some of its work, since many of the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;XbrlFragment&lt;/span&gt; properties will be populated and ready for use. The &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;XbrlDocument&lt;/span&gt; instance should, in the general&amp;nbsp;case, be in a known, stable state that will allow for its continued use in code. (This suggests that Gepsio should distinguish between exceptions that keep the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;XbrlDocument&lt;/span&gt; instance in a stable state from exceptions that have destabilized the loaded object model - I'll consider that idea for a future version of Gepsio.)&lt;br /&gt;
&lt;br /&gt;
Special thanks to Tom for trying Gepsio and for alerting me to the issue!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-2215111054555302043?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TT9m4u89Toqkd0iZP-yuNlp-bKI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TT9m4u89Toqkd0iZP-yuNlp-bKI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TT9m4u89Toqkd0iZP-yuNlp-bKI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TT9m4u89Toqkd0iZP-yuNlp-bKI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/qb_To55yZik" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/2215111054555302043/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/05/calculation-arc-validation-errors-are.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/2215111054555302043?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/2215111054555302043?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/qb_To55yZik/calculation-arc-validation-errors-are.html" title="Calculation Arc Validation Errors Are Common?" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/05/calculation-arc-validation-errors-are.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMFQH8zfCp7ImA9Wx9VF00.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-284420510517001065</id><published>2011-02-02T22:30:00.001-06:00</published><updated>2011-02-02T22:30:11.184-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-02T22:30:11.184-06:00</app:edited><title>Next Up: Essence-Alias Arcs</title><content type="html">&lt;p&gt;The first plan for the next CTP is to support essence-alias arcs as defined in &lt;a href="http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2008-07-02.htm#_5.2.6.2"&gt;section 5.2.6.2.2&lt;/a&gt; of the &lt;a href="http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2008-07-02.htm"&gt;XBRL spec&lt;/a&gt;. The XBRL-CONF-CR3-2007-03-05 conformance suite used in the largest of the Gepsio unit tests contains 17 examples of valid and invalid XBRL documents using the essence-alias arc, and the current Gepsio CTP does not pass all of the 17 tests (in fact, is passes the first five of the 17 essence-alias tests, but that’s pure coincidence, since those documents are marked as valid and Gepsio is currently not looking at essence-alias constructs).&lt;/p&gt; &lt;p&gt;This task will also lay some groundwork for removing more hardcoded parsing of XBRL schema elements. You may remember that the Feb 2011 CTP moved Gepsio from the hardcoded interpretation of schema elements over to support provided by the &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschema.aspx"&gt;XmlSchema&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschemaset.aspx"&gt;XmlSchemaSet&lt;/a&gt; classes in the .NET Framework. While this work was successful and led to a drastic improvement in Gepsio’s honoring of complex XBRL taxonomies, the definition arcs are still currently interpreted without the help of the .NET Framework. Any of the definition arcs found in the &amp;lt;appinfo&amp;gt; element of a schema are manually discovered and interpreted. This includes the footnote and calculation arcs that Gepsio already supports.&lt;/p&gt; &lt;p&gt;Gepsio’s support for the essence-alias arcs will be implemented based on their discovery within a compiled XmlSchemaSet (once I figure out where schema appinfo is buried inside the XmlSchemaSet object graph). Once Gepsio can find and interpret essence-alias appinfo within a compiled XmlSchemaSet, the design pattern will exist to allow the eventual refactoring of the existing appinfo support code to use similar constructs.&lt;/p&gt; &lt;p&gt;While I am on the subject of refactoring, I must tip my virtual hat to the XBRL-CONF-CR3-2007-03-05 conformance suite. It has been an invaluable tool in ensuring that Gepsio is behaving as the XBRL spec mandates. I don’t think that I would have taken on the work of moving from a manually interpreted XBRL schema to a schema interpreted by .NET for the Feb 2011 CTP if I weren’t confident that the conformance suite would catch errors that I introduced during that refactoring process. If I ever were to implement another specification like XBRL, I would certainly ensure that a conformance suite is available to validate my work. The importance of unit testing through a conformance suite published by the specification committee cannot be overstated.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-284420510517001065?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5iVpg22ziYItzbFVboEvXaXEjfs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5iVpg22ziYItzbFVboEvXaXEjfs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5iVpg22ziYItzbFVboEvXaXEjfs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5iVpg22ziYItzbFVboEvXaXEjfs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/m5LUvD9_O34" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/284420510517001065/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/02/next-up-essence-alias-arcs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/284420510517001065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/284420510517001065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/m5LUvD9_O34/next-up-essence-alias-arcs.html" title="Next Up: Essence-Alias Arcs" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/02/next-up-essence-alias-arcs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UARXw6eip7ImA9Wx9VFUw.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-3050054545990247892</id><published>2011-01-31T16:00:00.001-06:00</published><updated>2011-01-31T16:00:44.212-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T16:00:44.212-06:00</app:edited><title>Gepsio Feb 2011 CTP Released</title><content type="html">&lt;p&gt;I have just released the Feb 2011 CTP of Gepsio to Codeplex. You can get it &lt;a href="http://gepsio.codeplex.com/releases/view/58334"&gt;here&lt;/a&gt;. I added release notes to the page, and I encourage you to check those out as well.&lt;/p&gt; &lt;p&gt;With this release, I have moved away from PDF documentation and into a Wiki-style format which Codeplex supports nicely. You can find the table of contents &lt;a href="http://gepsio.codeplex.com/documentation"&gt;here&lt;/a&gt;. As of this writing, the documentation is slightly out of date, but I will work on it moving forward. The wiki format allows you to see changes as I make them, rather than downloading a separate document.&lt;/p&gt; &lt;p&gt;Enjoy this latest release!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-3050054545990247892?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XI-fVtk5ts-z0LGSn8P32YnWjOg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XI-fVtk5ts-z0LGSn8P32YnWjOg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XI-fVtk5ts-z0LGSn8P32YnWjOg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XI-fVtk5ts-z0LGSn8P32YnWjOg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/C8Hhfa3Ny6M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/3050054545990247892/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/01/gepsio-feb-2011-ctp-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3050054545990247892?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/3050054545990247892?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/C8Hhfa3Ny6M/gepsio-feb-2011-ctp-released.html" title="Gepsio Feb 2011 CTP Released" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/01/gepsio-feb-2011-ctp-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08DR30-cCp7ImA9Wx9VFE4.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-8761931219085838187</id><published>2011-01-30T19:04:00.001-06:00</published><updated>2011-01-30T19:04:36.358-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-30T19:04:36.358-06:00</app:edited><title>Schema Refactoring Check In</title><content type="html">&lt;p&gt;The XBRL schema support task that I have mentioned in my last two posts is complete! I am very happy to report that, with this change, Gepsio will provide much better support for complex XBRL schemas, including industry standard schemas such as the US GAAP schema. This support will make it into the Feb 2011 CTP, which will be released shortly.&lt;/p&gt; &lt;p&gt;If you have used a previous Gepsio CTP, but were running across errors or thrown &lt;font face="Courier New"&gt;XbrlException&lt;/font&gt; objects with messages relating to missing types or other schema-related errors, I encourage you to try the Feb 2011 CTP and load your XBRL documents with it. I am hopeful that you will see a marked difference in the level of support Gepsio offers for ensuring that your schemas are parsed with greater accuracy. Some of the Gepsio unit tests parse XBRL documents that use the UK-GAAP-2008-01-15 taxonomy, and those documents load into Gepsio with greater parsing accuracy than ever before.&lt;/p&gt; &lt;p&gt;There is still schema work to be done. The classes that implement the now-obsolete homegrown type system are still in the code base (though unused), and linkbases and arcs are still parsed manually. These items will be addressed in a future release.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-8761931219085838187?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r60vYZsl97-WBO83e8ITe2ny8Q0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r60vYZsl97-WBO83e8ITe2ny8Q0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r60vYZsl97-WBO83e8ITe2ny8Q0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r60vYZsl97-WBO83e8ITe2ny8Q0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/DqZ5NbLzE0k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/8761931219085838187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/01/schema-refactoring-check-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8761931219085838187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8761931219085838187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/DqZ5NbLzE0k/schema-refactoring-check-in.html" title="Schema Refactoring Check In" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/01/schema-refactoring-check-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUNQ3w6eip7ImA9Wx9WE0Q.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-5101742955694397364</id><published>2011-01-18T18:18:00.001-06:00</published><updated>2011-01-18T18:18:12.212-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-18T18:18:12.212-06:00</app:edited><title>BUG: Facts From Non-Target Namespaces Not Available from Loaded XBRL Document Object Model in Jan 2011 CTP</title><content type="html">&lt;p&gt;XBRL documents that use facts originating from multiple namespaces can be loaded into Gepsio, but not all of the facts will appear in the object model in the Jan 2011 CTP.&lt;/p&gt; &lt;p&gt;Consider, for example, an XBRL document whose schema declares the following namespaces:&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9f042252-4667-4a93-8710-6b758f760a70" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Sample XBRL Schema&lt;/div&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;xsd:schema&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-com&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/com/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-scf-dir&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/scf-dir/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-scf-indir&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/scf-indir/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-sfp-cls&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/sfp-cls/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-sheci&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/sheci/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-soc&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/soc/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-soi&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/soi/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ci-spc&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/stm/ci/spc/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:cmi&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.fujitsu.com/xbrl/taxeditor/default&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:dei&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/dei/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:dei-std&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/dei-std/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:link&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.xbrl.org/2003/linkbase&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:ref&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.xbrl.org/2006/ref&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:stm-all-ci&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/ci/stm-all/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:stm-ci&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/ci/stm/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:us-gaap&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/us-gaap/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:us-gaap-all&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/us-gaap-all/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:us-gaap-std&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/us-gaap-std/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:us-roles&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/us-roles/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:us-types&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.us/us-types/2008-03-31&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:xbrldt&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://xbrl.org/2005/xbrldt&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:xbrli&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.xbrl.org/2003/instance&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:xl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.xbrl.org/2003/XLink&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;xmlns:xlink&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.w3.org/1999/xlink&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;elementFormDefault&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;qualified&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;targetNamespace&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;http://www.fujitsu.com/xbrl/taxeditor/default&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;The target namespace in this example is &lt;font face="Courier New"&gt;http://www.fujitsu.com/xbrl/taxeditor/default&lt;/font&gt;, and the prefix for this namespace is &lt;font face="Courier New"&gt;cmi&lt;/font&gt;. Using the Gepsio Jan 2011 CTP, only facts in the &lt;font face="Courier New"&gt;cmi&lt;/font&gt; namespace will be loaded and available in the &lt;font face="Courier New"&gt;Facts&lt;/font&gt; collection. Facts in other namespaces will not appear in the collection.&lt;/p&gt; &lt;h2&gt;Why is this happening?&lt;/h2&gt; &lt;p&gt;When looking for facts in an XBRL document, Gepsio must determine which XML elements are indeed facts and which are elements defined in the XBRL specification (such as &lt;font face="Courier New"&gt;&amp;lt;context&amp;gt;&lt;/font&gt; and &lt;font face="Courier New"&gt;&amp;lt;period&amp;gt;&lt;/font&gt;). In the Jan 2011 CTP (and, indeed, all of the CTPs to this point), this determination is made by examining the current XML element’s namespace. If the namespace of the element matches the target namespace of the document’s schema, then the element is assumed to be a fact. Elements that are not a part of the target namespace are assumed to be something other than an XBRL fact, so they are not read in as a fact and not available in the &lt;font face="Courier New"&gt;Fact&lt;/font&gt; collection.&lt;/p&gt; &lt;p&gt;To continue the example using the sample XBRL schema shown above, only facts in the &lt;font face="Courier New"&gt;cmi&lt;/font&gt; namespace will be read in as an XBRL fact. Other elements in other namespaces, though they are facts, will not be read in as a fact and will not appear in the &lt;font face="Courier New"&gt;Fact&lt;/font&gt; collection. Facts using the &lt;font face="Courier New"&gt;us-gaap&lt;/font&gt; namespace, for example, will not appear in the &lt;font face="Courier New"&gt;Fact&lt;/font&gt; collection, even though they are indeed valid XBRL facts.&lt;/p&gt; &lt;h2&gt;How will this be fixed in the future?&lt;/h2&gt; &lt;p&gt;Gepsio’s fact loader will change in the future. Rather than looking at an XML element’s namespace to see if it matches the schema’s target namespace, the namespace URI for the XML element will be examined. If the namespace of the element lists the &lt;font face="Courier New"&gt;www.xbrl.org&lt;/font&gt; or &lt;font face="Courier New"&gt;www.w3.org&lt;/font&gt; domain, then the element will assumed to be something other than an XBRL fact. Elements using any other namespace domain will be assumed to be an XBRL fact. This rework should allow for a more complete population of a &lt;font face="Courier New"&gt;XbrlFragment&lt;/font&gt; object’s &lt;font face="Courier New"&gt;Fact&lt;/font&gt; collection.&lt;/p&gt; &lt;h2&gt;When will this be fixed?&lt;/h2&gt; &lt;p&gt;I am working on this bug now and am hoping to have this issue resolved in the Feb 2011 CTP.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-5101742955694397364?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AECpxwg8fnHSqI5CZakzm0dM4KE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AECpxwg8fnHSqI5CZakzm0dM4KE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AECpxwg8fnHSqI5CZakzm0dM4KE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AECpxwg8fnHSqI5CZakzm0dM4KE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/JFW4Ed_quFQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/5101742955694397364/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/01/bug-facts-from-non-target-namespaces.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/5101742955694397364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/5101742955694397364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/JFW4Ed_quFQ/bug-facts-from-non-target-namespaces.html" title="BUG: Facts From Non-Target Namespaces Not Available from Loaded XBRL Document Object Model in Jan 2011 CTP" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/01/bug-facts-from-non-target-namespaces.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFSXc7fip7ImA9Wx9XGE0.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-8918324921990069078</id><published>2011-01-11T21:16:00.001-06:00</published><updated>2011-01-11T21:21:58.906-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-11T21:21:58.906-06:00</app:edited><title>XBRL Schema Support Refactoring Success</title><content type="html">&lt;p&gt;In &lt;a href="http://gepsio.blogspot.com/2011/01/xbrl-schemas-are-valid-xml-schemas.html"&gt;my last post&lt;/a&gt;, I mentioned that I was going to embark on a task to replace the homegrown, half baked implementation of XBRL schema support in Gepsio with an implementation that heavily leverages the &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; and &lt;font face="Courier New"&gt;XmlSchemaSet&lt;/font&gt; classes already in the .NET Framework. I have spent the last week working on that task, and I am happy to report that things are looking very positive.&lt;/p&gt; &lt;p&gt;The XBRL schema support in the current Gepsio CTP is written from the ground up with no support from the .NET Framework other than &lt;font face="Courier New"&gt;XmlDocument&lt;/font&gt;. All of the schema parsing and type system management in the current CTP uses a homegrown implementation. Since Gepsio is in a CTP state, this support was incomplete. Because of the incomplete, homegrown schema support, some complex schemas used in XBRL documents, and many data types, were not supported and caused Gepsio to throw an exception when they are encountered. Because of these issues, some folks using early versions of the CTP were blocked from using it because the schemas used by the XBRL documents that they were trying to load wouldn’t parse. I’m fairly certain, for example, that the US-GAAP schema can’t be parsed by the current Gepsio CTP.&lt;/p&gt; &lt;p&gt;The exciting aspect of leveraging the &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; and &lt;font face="Courier New"&gt;XmlSchemaSet&lt;/font&gt; classes available in the .NET Framework for XBRL schema parsing and type management is that the next Gepsio CTP will have complete support for the parsing and type management aspects of complex XBRL schemas. This will give you an even better chance to use Gepsio with XBRL documents that use complex XBRL schemas and taxonomies. Better yet, the new implementation is hidden inside Gepsio’s already-existing &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt; class, so this won’t be a breaking change for anyone. All of this work is being done under the hood, hidden away from you, so you can concentrate on getting information out of your XBRL documents rather than having to worry about the details of schema management. That, after all, is what Gepsio is all about.&lt;/p&gt; &lt;p&gt;Another benefit of this work is that I can delete lots of code from the Gepsio source code base. Any developer can tell you that deleting code is a good thing, because that means that there is less code to manage and maintain and test. Currently, there are entire classes in Gepsio focused on XBRL schema support. There is, for example, an entire set of classes that map to the various simple and complex data types that can be found in an XBRL schema. There is currently a base class called &lt;font face="Courier New"&gt;AnyType&lt;/font&gt;, from which many other simple and complex type classes derive. Since all of that support will now be coming from the .NET Framework itself, I can happily delete all of those type management classes.&lt;/p&gt; &lt;p&gt;I hope to have this task all wrapped up and available in the next CTP. At this point, I hope to release the next CTP in February 2011. I hope to announce that you should grab the next CTP simply because of the vastly improved schema and type support that it will provide.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-8918324921990069078?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i6nzXjXiTI50vh_5MKEWh34ZxLM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i6nzXjXiTI50vh_5MKEWh34ZxLM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i6nzXjXiTI50vh_5MKEWh34ZxLM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i6nzXjXiTI50vh_5MKEWh34ZxLM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/fD7ANeUZ250" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/8918324921990069078/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/01/xbrl-schema-support-refactoring-success.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8918324921990069078?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8918324921990069078?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/fD7ANeUZ250/xbrl-schema-support-refactoring-success.html" title="XBRL Schema Support Refactoring Success" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/01/xbrl-schema-support-refactoring-success.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcNRns4fSp7ImA9Wx9XEEs.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-6268123959224529128</id><published>2011-01-03T07:58:00.001-06:00</published><updated>2011-01-03T07:58:17.535-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-03T07:58:17.535-06:00</app:edited><title>XBRL Schemas Are Valid XML Schemas?</title><content type="html">&lt;p&gt;Way back when, when I started work on &lt;a href="http://gepsio.codeplex.com/"&gt;Gepsio&lt;/a&gt;, my initial XBRL research led me to believe that XBRL schemas were not W3C valid XML schemas. This led me to an implementation approach in which I built my own XBRL schema parser for use with Gepsio.&lt;/p&gt; &lt;p&gt;Now that I am older and wiser (OK, maybe just older), I am going to re-evaluate that position. I see that my as-yet-incomplete implementation of XBRL schema support within Gepsio is causing some bugs to be filed, which will lead to more code that must be written. If my initial assumption was incorrect, and all XBRL schemas are indeed W3C valid XML schemas, then all of this schema parsing and management code is a waste. It would make more sense to use the &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; class in the .NET Framework and let it do all of my schema parsing and type management for Gepsio.&lt;/p&gt; &lt;p&gt;I’ll be taking some time this month to try and prove out the assumption that all XBRL schemas are valid W3C XML schemas. Here’s the approach I will be taking:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Retain the existing &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt; class and related parsing and type management code.&lt;/li&gt; &lt;li&gt;Add a private field to the &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt; class of type &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt;.&lt;/li&gt; &lt;li&gt;Along with all of the current work that Gepsio is doing with &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt;, attempt to open up the same schema as a W3C XML Schema with the new &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; member.&lt;/li&gt; &lt;li&gt;Run all of the Gepsio unit tests. If the &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt;-based parsing fails with a valid XBRL schema on any of the unit tests, then I will know that not all XBRL schemas are W3C XML schemas.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If, as I suspect, all XBRL schemas are indeed valid W3C SML schemas, then I can work to rip out the internal implementation of &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt; and replace it with a new implementation that leverages &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; rather than doing all of the parsing work myself. This will eliminate lots of unneeded schema management code and will keep things cleaner. In any case, the &lt;font face="Courier New"&gt;XbrlSchema&lt;/font&gt; class and its public interface will remain as is. Only its internal and private implementations will change so that it leverages the functionality in the .NET &lt;font face="Courier New"&gt;XmlSchema&lt;/font&gt; class. That would be fine with me; deleting dead code is always worthwhile.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-6268123959224529128?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GeJt2tGlBKyXYGrymvbVblUSxs4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GeJt2tGlBKyXYGrymvbVblUSxs4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GeJt2tGlBKyXYGrymvbVblUSxs4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GeJt2tGlBKyXYGrymvbVblUSxs4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/k28A7Crlzjw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/6268123959224529128/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2011/01/xbrl-schemas-are-valid-xml-schemas.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6268123959224529128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/6268123959224529128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/k28A7Crlzjw/xbrl-schemas-are-valid-xml-schemas.html" title="XBRL Schemas Are Valid XML Schemas?" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2011/01/xbrl-schemas-are-valid-xml-schemas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMRX4yeCp7ImA9Wx9QF08.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-2632003335715519680</id><published>2010-12-30T11:03:00.001-06:00</published><updated>2010-12-30T11:03:04.090-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-30T11:03:04.090-06:00</app:edited><title>Jan 2011 CTP Released</title><content type="html">&lt;p&gt;I have just released a new build out to the &lt;a href="http://gepsio.codeplex.com/"&gt;Gepsio Codeplex site&lt;/a&gt;. This release, the January 2011 Community Technology Preview, is available to download from the site. This release adds formal support for calculation lniks, arcs and validation.&lt;/p&gt; &lt;p&gt;As always, your feedback and bug reports are welcome. You can send feedback &lt;a href="http://gepsio.codeplex.com/discussions"&gt;here&lt;/a&gt;, and you can file a bug report &lt;a href="http://gepsio.codeplex.com/workitem/list/basic"&gt;here&lt;/a&gt;. I see that some reports have already been filed. This means that I have some work to do, but it also means that a few people are using Gepsio and working with it. Thank you to these early adopters!&lt;/p&gt; &lt;p&gt;My plan for the next release (which will hopefully be the Feb 2011 CTP) is to get the precision inference tests available in the XBRL-CONF-CR3-2007-03-05 test suite to pass. Since much of the precision inference work was implemented for this Jan 2011 CTP release, I am hoping for smooth sailing with regards to the precision inference tests. Time permitting, I can work on some of the already-filed issues and some code commenting.&lt;/p&gt; &lt;p&gt;Enjoy the Jan 2011 CTP!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-2632003335715519680?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mgPUkF-mp0tRyRuotdXXTGfLwUA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mgPUkF-mp0tRyRuotdXXTGfLwUA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mgPUkF-mp0tRyRuotdXXTGfLwUA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mgPUkF-mp0tRyRuotdXXTGfLwUA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/BE90HvYRyH4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/2632003335715519680/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2010/12/jan-2011-ctp-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/2632003335715519680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/2632003335715519680?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/BE90HvYRyH4/jan-2011-ctp-released.html" title="Jan 2011 CTP Released" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2010/12/jan-2011-ctp-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8GRHs9eip7ImA9Wx9QFkg.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-8123272006754989603</id><published>2010-12-29T14:00:00.001-06:00</published><updated>2010-12-29T14:00:25.562-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-29T14:00:25.562-06:00</app:edited><title>Calculation Binding Tests Pass</title><content type="html">&lt;p&gt;I have just checked in &lt;a href="http://gepsio.codeplex.com/SourceControl/changeset/changes/54311"&gt;changeset 54311&lt;/a&gt; to the &lt;a href="http://gepsio.codeplex.com/"&gt;Gepsio&lt;/a&gt; codebase. This check completes support for the calculation binding and validation rules given in the XBRL specification. Gepsio will now throw an exception if calculation links are found with incorrect values. The &lt;font face="Courier New"&gt;decimals&lt;/font&gt; and &lt;font face="Courier New"&gt;precision&lt;/font&gt; attributes are honored on numeric facts, and precision is inferred where necessary. The &lt;font face="Courier New"&gt;weight &lt;/font&gt;attribute found on calculation arcs are also honored.&lt;/p&gt; &lt;p&gt;I will be using this changeset to make the next official CTP release. Once I update some documentation, I will be releasing a new binaries for those wishing to grab the .NET assembly without having to build the source. Look for the Jan 2011 CTP soon!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-8123272006754989603?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f2Kah6IJ5ZXUsWh3L0uwOdZ_TTY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2Kah6IJ5ZXUsWh3L0uwOdZ_TTY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f2Kah6IJ5ZXUsWh3L0uwOdZ_TTY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2Kah6IJ5ZXUsWh3L0uwOdZ_TTY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/c7l6btSAYrQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/8123272006754989603/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2010/12/calculation-binding-tests-pass.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8123272006754989603?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8123272006754989603?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/c7l6btSAYrQ/calculation-binding-tests-pass.html" title="Calculation Binding Tests Pass" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2010/12/calculation-binding-tests-pass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcGSH88fip7ImA9Wx9QFEU.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-8406841402475866446</id><published>2010-12-27T14:50:00.001-06:00</published><updated>2010-12-27T14:50:29.176-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-27T14:50:29.176-06:00</app:edited><title>Precision Inference Code Checked In</title><content type="html">&lt;p&gt;I have just checked in code that implements section 4.6.6 (“Inferring Precision”) of the XBRL specification. I used the technique that &lt;a href="http://gepsio.blogspot.com/2010/12/unit-testing-precision-inferrence.html"&gt;I mentioned in my last post&lt;/a&gt; to unit test the code, and all seven examples given in section 4.6.6 have been implemented as unit tests and all examples pass.&lt;/p&gt; &lt;p&gt;This work adds the following properties to the &lt;font face="Courier New"&gt;Fact&lt;/font&gt; class:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;bool DecimalsSpecified&lt;/strong&gt;&lt;/font&gt;: This property evaluates to &lt;font face="Courier New"&gt;true&lt;/font&gt; if the fact was specified in the XBRL fragment with a &lt;font face="Courier New"&gt;decimals&lt;/font&gt; attribute value and &lt;font face="Courier New"&gt;false&lt;/font&gt; otherwise.  &lt;li&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;bool PrecisionSpecified&lt;/strong&gt;&lt;/font&gt;: This property evaluates to &lt;font face="Courier New"&gt;true&lt;/font&gt; if the fact was specified in the XBRL fragment with a &lt;font face="Courier New"&gt;precision &lt;/font&gt;attribute value and &lt;font face="Courier New"&gt;false&lt;/font&gt; otherwise.  &lt;li&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;int Precision&lt;/strong&gt;&lt;/font&gt;: This property specifies the number of significant figures to be assumed to be correct in calculations involving the fact’s values.  &lt;li&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;bool PrecisionInferred&lt;/strong&gt;&lt;/font&gt;: This property evaluates to &lt;font face="Courier New"&gt;true&lt;/font&gt; if the precision of the fact was calculated using the rules in section 4.6.6 of the XBRL specification and &lt;font face="Courier New"&gt;false&lt;/font&gt; otherwise.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If the value of the &lt;font face="Courier New"&gt;PrecisionInferred&lt;/font&gt; property is &lt;font face="Courier New"&gt;true&lt;/font&gt;, then the value of &lt;font face="Courier New"&gt;PrecisionSpecified&lt;/font&gt; will be &lt;font face="Courier New"&gt;false&lt;/font&gt;, and the value of the &lt;font face="Courier New"&gt;Precision&lt;/font&gt; property can assumed to be calculated in accordance with the rules in section 4.6.6 of the XBRL spec. If the value of the &lt;font face="Courier New"&gt;PrecisionInferred&lt;/font&gt; property is &lt;font face="Courier New"&gt;false&lt;/font&gt;, then the value of &lt;font face="Courier New"&gt;PrecisionSpecified&lt;/font&gt; will be &lt;font face="Courier New"&gt;true&lt;/font&gt;, and the value of the &lt;font face="Courier New"&gt;Precision&lt;/font&gt; property can assumed to be specified in the XBRL fragment through the &lt;font face="Courier New"&gt;precision&lt;/font&gt; attribute on the fact’s element. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-8406841402475866446?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4VWsw5XWQs1O-3tpL3I5DtymzMY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4VWsw5XWQs1O-3tpL3I5DtymzMY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4VWsw5XWQs1O-3tpL3I5DtymzMY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4VWsw5XWQs1O-3tpL3I5DtymzMY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/UPovgB-uZxU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/8406841402475866446/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2010/12/precision-inference-code-checked-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8406841402475866446?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/8406841402475866446?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/UPovgB-uZxU/precision-inference-code-checked-in.html" title="Precision Inference Code Checked In" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2010/12/precision-inference-code-checked-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EMQn4_fyp7ImA9Wx9RGU0.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-4814805972086121527</id><published>2010-12-20T22:20:00.001-06:00</published><updated>2010-12-20T22:28:03.047-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-20T22:28:03.047-06:00</app:edited><title>Unit Testing Precision Inferrence</title><content type="html">I am currently implementing section 4.6.6 of the XBRL spec ("Inferring Precision") as a part of my overall effort to add support for an XBRL item's &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;precision&lt;/span&gt; and&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;decimals&lt;/span&gt; attributes to Gepsio. This section of the spec&amp;nbsp;contains a very nice table in Example 13 that provides examples of sample fact values, &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;decimals&lt;/span&gt; attribute values, and the calculated value of the inferred precision for the fact. Since the XBRL-CONF-CR3-2007-03-05 conformance suite doesn't provide test coverage specifically for the values in this table, I have implemented specific unit tests for Gepsio to cover each row in the Example 13 table.&lt;br /&gt;
&lt;br /&gt;
I have created a sample XBRL document for each row of the table, and each row has a corresponding unit test. For example, the first row of the Example 13 table states that a fact value of 123 and a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;decimals&lt;/span&gt; attribute of 2 should carry and implied precision of 5. To test this, I created an XBRL document containing this value as a fact:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;
&amp;lt;xbrl&lt;br /&gt;
&amp;nbsp; xmlns="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/instance&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:link="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/linkbase&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:xlink="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.w3.org/1999/xlink&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:xsi="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:iso4217="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/iso4217&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:inferprecisiontestcase="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://gepsio.codeplex.com/InferPrecisionTest&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;link:schemaRef xlink:href="Example13.xsd" xlink:type="simple" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;context id="context"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;entity&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;identifier scheme="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://gepsio.codeplex.com"&amp;gt;entity&amp;lt;/identifier&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/entity&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;period&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;instant&amp;gt;2006-07-28&amp;lt;/instant&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/period&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/context&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;unit id="unit"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;measure&amp;gt;iso4217:EUR&amp;lt;/measure&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;/unit&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;inferprecisiontestcase:A contextRef="context" unitRef="unit" decimals="2"&amp;gt;123&amp;lt;/inferprecisiontestcase:A&amp;gt;&lt;br /&gt;
&amp;lt;/xbrl&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This sample document is associated with an appropriate schema:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;
&amp;lt;schema&lt;br /&gt;
&amp;nbsp; xmlns="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:xbrli="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/instance&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:link="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/linkbase&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:xlink="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.w3.org/1999/xlink&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; xmlns:inferprecisiontestcase="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://gepsio.codeplex.com/InferPrecisionTest&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; targetNamespace="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://gepsio.codeplex.com/InferPrecisionTest&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;"&lt;br /&gt;
&amp;nbsp; elementFormDefault="qualified"&lt;br /&gt;
&amp;nbsp; attributeFormDefault="unqualified"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;import namespace="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/instance&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;" schemaLocation="&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;element id="calcinferprecisiontestcase_A" name="A" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" /&amp;gt;&lt;br /&gt;
&amp;lt;/schema&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The unit test simply loads this XBRL document, looks for the document's fact, and checks the fact's properties to ensure that the correct values are available:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestMethod]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Example13Row1()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XbrlDocument NewXbrlDocument = new XbrlDocument();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NewXbrlDocument.Load(@"..\..\..\JeffFerguson.Test.Gepsio\InferPrecisionTestDocuments\Example13Row1.xbrl");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual&amp;lt;int&amp;gt;(1, NewXbrlDocument.XbrlFragments.Count, "No XBRL fragments found.");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XbrlFragment FirstFragment = NewXbrlDocument.XbrlFragments[0];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual&amp;lt;int&amp;gt;(1, FirstFragment.Facts.Count, "No facts found in fragment.");&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fact FirstFact = FirstFragment.Facts[0];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsTrue(FirstFact.DecimalsSpecified);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsFalse(FirstFact.PrecisionSpecified);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.IsTrue(FirstFact.PrecisionInferred);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assert.AreEqual&amp;lt;int&amp;gt;(5, FirstFact.Precision);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I will follow this pattern for every row in the Example table to ensure that there&amp;nbsp;is adequate test coverage for Gepsio's calculation of inferred precision values for a fact.&lt;br /&gt;
&lt;br /&gt;
These tests leverage a new Fact property called &lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;PrecisionInferred&lt;/span&gt;, which will be available in the next build.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-4814805972086121527?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2oigXumMA1co2bvzrFvHqA6eUEo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2oigXumMA1co2bvzrFvHqA6eUEo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2oigXumMA1co2bvzrFvHqA6eUEo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2oigXumMA1co2bvzrFvHqA6eUEo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/1r3JpBH8VOQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/4814805972086121527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2010/12/unit-testing-precision-inferrence.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/4814805972086121527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/4814805972086121527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/1r3JpBH8VOQ/unit-testing-precision-inferrence.html" title="Unit Testing Precision Inferrence" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2010/12/unit-testing-precision-inferrence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4ASX05fCp7ImA9Wx9RFk8.&quot;"><id>tag:blogger.com,1999:blog-1533220940284878969.post-7371451460968339753</id><published>2010-12-17T16:12:00.000-06:00</published><updated>2010-12-17T16:12:28.324-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-17T16:12:28.324-06:00</app:edited><title>Renewed Focus on Gepsio Development</title><content type="html">I released a CTP of the Gepsio code base in the early months of 2009, not quite knowing what to expect. I have, since that time, been humbled to find that it has received 10,354 page views, 2,779 visits and 1,598 downloads. I realize that that's a far cry from a large scale effort, but it does show that there are people curious about how XBRL might be used in a .NET context.&lt;br /&gt;
&lt;br /&gt;
It is that curiosity that has led me back to continue develop on Gepsio, and this blog is one part of that renewed development focus. My goal with Gepsio is to provide parsing, validation and object model exposure&amp;nbsp;for XBRL documents for .NET developers.&lt;br /&gt;
&lt;br /&gt;
My unit testing methodology for Gepsio is to get Gepsio to a state in which it can be used to successfully validate all of the tests in the&amp;nbsp;XBRL-CONF-CR3-2007-03-05 conformance suite published by the XBRL folks in 2007 (I know that newer conformance suites exist, and I will get to those at some point in the future). Once I find a test that doesn't pass with a Gepsio build, I investigate the issue, put the necessary upgrades into Gepsio and rerun the conformance suite until the previously failing test passes. In this way, I can be confident that I am adding only what is necessary to Gepsio while still ensuring that the final builds pass a subsection of tests. As of the latest Gepsio build, the following&amp;nbsp;XBRL-CONF-CR3-2007-03-05 conformance suite&amp;nbsp;test groups are correctly implemented in Gepsio:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;ID Scope Tests&lt;/li&gt;
&lt;li&gt;Context Tests&lt;/li&gt;
&lt;li&gt;Period Type Tests&lt;/li&gt;
&lt;li&gt;Unit of Measure Tests&lt;/li&gt;
&lt;li&gt;Decimal and Precision Mutual Exclusion and prohibition on nil items&lt;/li&gt;
&lt;li&gt;Required Arc in Definition Linkbase&lt;/li&gt;
&lt;li&gt;Schema References&lt;/li&gt;
&lt;/ul&gt;The next area of focus for Gepsio is to implement the calculation binding code, which will implement support for the&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;precision&lt;/span&gt; and&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;decimals&lt;/span&gt; attributes on an XBRL item.&lt;br /&gt;
&lt;br /&gt;
Thank you for your interest in Gepsio. If you have any questions or comments, please feel free to let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1533220940284878969-7371451460968339753?l=gepsio.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eHnbGnDL32aU2ERZ3-uOFci7Fqw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eHnbGnDL32aU2ERZ3-uOFci7Fqw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eHnbGnDL32aU2ERZ3-uOFci7Fqw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eHnbGnDL32aU2ERZ3-uOFci7Fqw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gepsio/~4/Fr88rj8rNtU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gepsio.blogspot.com/feeds/7371451460968339753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gepsio.blogspot.com/2010/12/renewed-focus-on-gepsio-development.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/7371451460968339753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1533220940284878969/posts/default/7371451460968339753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gepsio/~3/Fr88rj8rNtU/renewed-focus-on-gepsio-development.html" title="Renewed Focus on Gepsio Development" /><author><name>Jeff Ferguson</name><uri>http://www.blogger.com/profile/01101882565088939463</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="26" height="32" src="http://3.bp.blogspot.com/-EdLUsIQphHw/TvpcJS4BwPI/AAAAAAAABgM/amkLuM6KaOI/s220/Jeff%2B-%2BMagenic%2BOpen%2BHouse%2B-%2BMon%2B26%2BSep%2B2011.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://gepsio.blogspot.com/2010/12/renewed-focus-on-gepsio-development.html</feedburner:origLink></entry></feed>

