sec_edgar 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,39 @@
1
+ module SecEdgar
2
+ class OfficerTitle
3
+ attr_reader :raw_title
4
+
5
+ def initialize(raw)
6
+ @raw_title = raw
7
+ end
8
+
9
+ def parsed
10
+ @parsed ||= raw_title.gsub(/[^a-z]/i, '').upcase
11
+ end
12
+
13
+ def important?
14
+ ceo? || president? || cfo? || finance?
15
+ end
16
+
17
+ def to_s
18
+ @raw_title.upcase
19
+ end
20
+
21
+ private
22
+
23
+ def president?
24
+ parsed.include?("PRES")
25
+ end
26
+
27
+ def ceo?
28
+ parsed.include?("CEO") || parsed.include?("EXECUTIVEOFFICER")
29
+ end
30
+
31
+ def cfo?
32
+ parsed.include?("CFO") || parsed.include?("FINANCIALOFFICER")
33
+ end
34
+
35
+ def finance?
36
+ parsed.include?("FINANCE")
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,141 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <!-- Filename: ownership4Document.xsd.xml -->
4
+ <!-- Purpose: Defines the elements specific to a 4 Ownership primary document. -->
5
+ <!-- Version: X0306 -->
6
+
7
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
8
+ elementFormDefault="qualified">
9
+
10
+ <xs:include schemaLocation="lib/sec4/ownershipDocumentCommon.xsd.xml"/>
11
+
12
+ <!-- this schema applies exclusively to a "4" document -->
13
+ <xs:simpleType name="DOCUMENT_TYPE">
14
+ <xs:restriction base="xs:string">
15
+ <xs:pattern value="4"/>
16
+ </xs:restriction>
17
+ </xs:simpleType>
18
+
19
+ <xs:simpleType name="TRANS_FORM4_TYPE_PICKLIST">
20
+ <xs:annotation>
21
+ <xs:documentation>
22
+ A "4" document can have security transactions of types 4 and 5.
23
+ </xs:documentation>
24
+ </xs:annotation>
25
+ <xs:restriction base="xs:string">
26
+ <xs:pattern value="4|5"/>
27
+ </xs:restriction>
28
+ </xs:simpleType>
29
+
30
+ <xs:complexType name="TRANSACTION_CODING_FOR_4">
31
+ <xs:annotation>
32
+ <xs:documentation>
33
+ The transactionFormType can be 4 or 5.
34
+ The transactionCode is mandatory.
35
+ The equitySwapInvolved flag is mandatory.
36
+ A "4" transaction is assumed on-time.
37
+ A "5" transaction is assumed early.
38
+ </xs:documentation>
39
+ </xs:annotation>
40
+ <xs:sequence>
41
+ <xs:element name="transactionFormType" type="TRANS_FORM4_TYPE_PICKLIST" minOccurs="1"/>
42
+ <xs:element name="transactionCode" type="TRANS_CODE_PICKLIST" minOccurs="1"/>
43
+ <xs:element name="equitySwapInvolved" type="xs:boolean" minOccurs="1"/>
44
+ <xs:element name="footnoteId" type="FOOTNOTE_ID" minOccurs="0" maxOccurs="99"/>
45
+ </xs:sequence>
46
+ </xs:complexType>
47
+
48
+ <xs:complexType name="NONDERIVATIVE_TRANSACTION">
49
+ <xs:sequence>
50
+ <xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
51
+ <xs:element name="transactionDate" type="DATE_WITH_FOOTNOTE" minOccurs="1"/>
52
+ <xs:element name="deemedExecutionDate" type="DATE_AND_OR_FOOTNOTE" minOccurs="0"/>
53
+ <xs:element name="transactionCoding" type="TRANSACTION_CODING_FOR_4" minOccurs="0"/>
54
+ <xs:element name="transactionTimeliness" type="TRANSACTION_TIMELINESS" minOccurs="0"/>
55
+ <xs:element name="transactionAmounts" type="NONDERIV_TRANSACT_AMOUNTS" minOccurs="1"/>
56
+ <xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
57
+ <xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
58
+ </xs:sequence>
59
+ </xs:complexType>
60
+
61
+ <xs:complexType name="DERIVATIVE_TRANSACTION">
62
+ <xs:sequence>
63
+ <xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
64
+ <xs:element name="conversionOrExercisePrice" type="OPT_NUMBER_WITH_FOOTNOTE" minOccurs="1"/>
65
+ <xs:element name="transactionDate" type="DATE_WITH_FOOTNOTE" minOccurs="1"/>
66
+ <xs:element name="deemedExecutionDate" type="DATE_AND_OR_FOOTNOTE" minOccurs="0"/>
67
+ <xs:element name="transactionCoding" type="TRANSACTION_CODING_FOR_4" minOccurs="0"/>
68
+ <xs:element name="transactionTimeliness" type="TRANSACTION_TIMELINESS" minOccurs="0"/>
69
+ <xs:element name="transactionAmounts" type="DERIV_TRANSACT_NO_FOOT" minOccurs="1"/>
70
+ <xs:element name="exerciseDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
71
+ <xs:element name="expirationDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
72
+ <xs:element name="underlyingSecurity" type="UNDERLYING_SECURITY" minOccurs="1"/>
73
+ <xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
74
+ <xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
75
+ </xs:sequence>
76
+ </xs:complexType>
77
+
78
+ <xs:complexType name="NONDERIVATIVE_HOLDING">
79
+ <xs:sequence>
80
+ <xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
81
+ <xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
82
+ <xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
83
+ </xs:sequence>
84
+ </xs:complexType>
85
+
86
+ <xs:complexType name="DERIVATIVE_HOLDING">
87
+ <xs:sequence>
88
+ <xs:element name="securityTitle" type="SECURITY_TITLE" minOccurs="1"/>
89
+ <xs:element name="conversionOrExercisePrice" type="OPT_NUMBER_WITH_FOOTNOTE" minOccurs="1"/>
90
+ <xs:element name="exerciseDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
91
+ <xs:element name="expirationDate" type="OPT_DATE_WITH_FOOTNOTE" minOccurs="1"/>
92
+ <xs:element name="underlyingSecurity" type="UNDERLYING_SECURITY" minOccurs="1"/>
93
+ <xs:element name="postTransactionAmounts" type="POST_TRANSACTION_AMOUNTS" minOccurs="1"/>
94
+ <xs:element name="ownershipNature" type="OWNERSHIP_NATURE" minOccurs="1"/>
95
+ </xs:sequence>
96
+ </xs:complexType>
97
+
98
+ <xs:complexType name="NONDERIVATIVE_TABLE">
99
+ <xs:annotation>
100
+ <xs:documentation>
101
+ Can have up to 30 entries in the Non-Derivative Table. This is Table 1 on the printed form.
102
+ Can have any combination of Transactions and Holdings in any order.
103
+ </xs:documentation>
104
+ </xs:annotation>
105
+ <xs:choice minOccurs="0" maxOccurs="30">
106
+ <xs:element name="nonDerivativeTransaction" type="NONDERIVATIVE_TRANSACTION"/>
107
+ <xs:element name="nonDerivativeHolding" type="NONDERIVATIVE_HOLDING"/>
108
+ </xs:choice>
109
+ </xs:complexType>
110
+
111
+ <xs:complexType name="DERIVATIVE_TABLE">
112
+ <xs:annotation>
113
+ <xs:documentation>
114
+ Can have up to 30 entries in the Derivative Table. This is Table 2 on the printed form.
115
+ Can have any combination of Transactions and Holdings in any order.
116
+ </xs:documentation>
117
+ </xs:annotation>
118
+ <xs:choice minOccurs="0" maxOccurs="30">
119
+ <xs:element name="derivativeTransaction" type="DERIVATIVE_TRANSACTION"/>
120
+ <xs:element name="derivativeHolding" type="DERIVATIVE_HOLDING"/>
121
+ </xs:choice>
122
+ </xs:complexType>
123
+
124
+ <xs:element name="ownershipDocument">
125
+ <xs:complexType>
126
+ <xs:sequence>
127
+ <xs:element name="schemaVersion" type="SCHEMA_VERSION" minOccurs="0" maxOccurs="1"/>
128
+ <xs:element name="documentType" type="DOCUMENT_TYPE" minOccurs="1" maxOccurs="1"/>
129
+ <xs:element name="periodOfReport" type="xs:date" minOccurs="1" maxOccurs="1"/>
130
+ <xs:element name="notSubjectToSection16" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
131
+ <xs:element name="issuer" type="ISSUER" minOccurs="1" maxOccurs="1"/>
132
+ <xs:element name="reportingOwner" type="REPORTING_OWNER" minOccurs="1" maxOccurs="10"/>
133
+ <xs:element name="nonDerivativeTable" type="NONDERIVATIVE_TABLE" minOccurs="0" maxOccurs="1"/>
134
+ <xs:element name="derivativeTable" type="DERIVATIVE_TABLE" minOccurs="0" maxOccurs="1"/>
135
+ <xs:element name="footnotes" type="FOOTNOTE_GROUP" minOccurs="0" maxOccurs="1"/>
136
+ <xs:element name="remarks" type="STRING_2000" minOccurs="0" maxOccurs="1"/>
137
+ <xs:element name="ownerSignature" type="SIGNATURE" minOccurs="1" maxOccurs="10"/>
138
+ </xs:sequence>
139
+ </xs:complexType>
140
+ </xs:element>
141
+ </xs:schema>