mlhim-specs-dev team mailing list archive
-
mlhim-specs-dev team
-
Mailing list archive
-
Message #00765
[Branch ~cdd-dev/cdd/trunk] Rev 282: Moved dc & rdf namespace declarations. Added DvOrdinal generation.
------------------------------------------------------------
revno: 282
committer: Timothy W. Cook <timothywayne.cook@xxxxxxxxx>
branch nick: cdd
timestamp: Sat 2012-10-27 20:03:51 -0200
message:
Moved dc & rdf namespace declarations. Added DvOrdinal generation.
modified:
src/xls2ccd/xls2ccd.py
src/xls2ccd/xls2ccdRM.py
--
lp:cdd
https://code.launchpad.net/~cdd-dev/cdd/trunk
Your team MLHIM Specifications Developers is subscribed to branch lp:cdd.
To unsubscribe from this branch go to https://code.launchpad.net/~cdd-dev/cdd/trunk/+edit-subscription
=== modified file 'src/xls2ccd/xls2ccd.py'
--- src/xls2ccd/xls2ccd.py 2012-10-18 14:43:48 +0000
+++ src/xls2ccd/xls2ccd.py 2012-10-27 22:03:51 +0000
@@ -77,7 +77,7 @@
print values[9]
ccd_dict[currkey] = [values[0],values[1],values[2],values[3],values[4],values[5],values[6],values[7],values[8],values[9],values[10],values[11],values[12],values[13],values[14],values[15],values[16],[],[],[]] # New Entry values
else:
- if values[17]: #DvString Enumerations
+ if values[17]: #DvString/DvOrdinal Enumerations
ccd_dict[currkey][17].append((values[17],values[18],values[19]))
elif values[20]: #DvCodedString Codes
@@ -181,6 +181,8 @@
xsd_file.write("""<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mlhim2="http://www.mlhim.org/xmlns/mlhim2/2_4_0"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc= "http://purl.org/dc/elements/1.1/"
elementFormDefault="qualified"
targetNamespace="http://www.mlhim.org/xmlns/mlhim2/2_4_0"
xmlns:data-view="http://www.w3.org/2003/g/data-view#"
@@ -191,8 +193,7 @@
""")
xsd_file.write("""
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:dc= "http://purl.org/dc/elements/1.1/">
+ <rdf:RDF>
<rdf:Description rdf:about="http://www.hkcr.net/ccd/""" + schema + """">
<dc:title>"""+title+"""</dc:title>
@@ -317,6 +318,23 @@
xsd_file.write(xls2ccdRM.getDvStringType(data_name, dt_id, default, dt_docs, indent,enumList))
except UnicodeEncodeError:
print "*********UNICODE ERROR************", enumList
+
+ elif dt =="DvOrdinalType":
+ if ccd_dict[k][17]: # Enumerations?
+ enumList = []
+ for n in range(0, len( ccd_dict[k][17])):
+ enumList.append(((ccd_dict[k][17][n][0]).replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"'),(ccd_dict[k][17][n][1]).replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"') + " : " + (ccd_dict[k][17][n][2]).replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"')))
+ else:
+ enumList = None
+
+ default = None
+ indent = 4
+ try:
+ xsd_file.write(xls2ccdRM.getDvOrdinalType(data_name, dt_id, default, dt_docs, indent,enumList))
+ except UnicodeEncodeError:
+ print "*********UNICODE ERROR************", enumList
+
+
else:
xsd_file.write("\n\n\n<!-- ***** DataType Not Yet Implemented: " +dt+ " ***** -->\n\n")
xsd_file.write(repr(ccd_dict[k]))
=== modified file 'src/xls2ccd/xls2ccdRM.py'
--- src/xls2ccd/xls2ccdRM.py 2012-10-18 14:43:48 +0000
+++ src/xls2ccd/xls2ccdRM.py 2012-10-27 22:03:51 +0000
@@ -576,6 +576,71 @@
return dt_str
+def getDvOrdinalType(data_name, ct_name, default, docs, indent=0, enumList=None):
+ """
+ data_name - string to use for data_name
+ ct_name - uuid string for complexType.name
+ default - an optional default string value
+ docs - string for documentation
+ indent - number of spaces to indent first line
+ enumList - a list of enumerations with doc strings as a tuple
+ """
+ if default:
+ default = " default='"+default+"' "
+ else:
+ default = ''
+ padding = ('').rjust(indent)
+
+ dt_str = '\n\n'+padding.rjust(indent) + ("<xs:complexType name='ct-"+ct_name+"'>\n")
+ dt_str += padding.rjust(indent+2) + ("<xs:complexContent>\n")
+ dt_str += padding.rjust(indent+4) + ("<xs:restriction base='mlhim2:DvOrdinalType'>\n")
+ dt_str += padding.rjust(indent+6) + ("<xs:sequence>\n")
+ #DvAny
+ dt_str += padding.rjust(indent+8) + ("<xs:element maxOccurs='1' minOccurs='1' name='data-name' type='xs:string' fixed='"+data_name+"'/>\n")
+ dt_str += padding.rjust(indent+8) + ("<xs:element maxOccurs='1' minOccurs='0' ref='mlhim2:ExceptionalValue'/>\n")
+ dt_str += padding.rjust(indent+8) + ("<xs:element maxOccurs='1' minOccurs='0' name='valid-time-begin' type='xs:dateTime'/>\n")
+ dt_str += padding.rjust(indent+8) + ("<xs:element maxOccurs='1' minOccurs='0' name='valid-time-end' type='xs:dateTime'/>\n")
+ #DvOrdinal
+ if enumList: # there should always be enums for DvOrdinal?
+ dt_str += padding.rjust(indent+10) + ("<xs:element maxOccurs='1' minOccurs='1' name='DvOrdinal-dv' "+default+">\n")
+ dt_str += padding.rjust(indent+12) + ("<xs:simpleType>\n")
+ dt_str += padding.rjust(indent+12) + ("<xs:restriction base='xs:decimal'>\n")
+ for n in range(1,len(enumList)+1):
+ dt_str += padding.rjust(indent+14) + ("<xs:enumeration value='"+str(n)+"'/>\n")
+ dt_str += padding.rjust(indent+12) + ("</xs:restriction>\n")
+ dt_str += padding.rjust(indent+12) + ("</xs:simpleType>\n")
+ dt_str += padding.rjust(indent+10) + ("</xs:element>\n")
+
+ dt_str += padding.rjust(indent+10) + ("<xs:element maxOccurs='1' minOccurs='1' name='symbol'>\n")
+ dt_str += padding.rjust(indent+12) + ("<xs:annotation>\n")
+ dt_str += padding.rjust(indent+14) + ("<xs:documentation>\n")
+ dt_str += padding.rjust(indent+14) + (docs + "\n")
+ dt_str += padding.rjust(indent+14) + ("</xs:documentation>\n")
+ dt_str += padding.rjust(indent+12) + ("</xs:annotation>\n")
+ dt_str += padding.rjust(indent+12) + ("<xs:simpleType>\n")
+ dt_str += padding.rjust(indent+14) + ("<xs:restriction base='xs:string'>\n")
+ for n in range(len(enumList)):
+ dt_str += padding.rjust(indent+16) + ("<xs:enumeration value='"+enumList[n][0]+"'>\n")
+ dt_str += padding.rjust(indent+16) + ("<xs:annotation>\n")
+ dt_str += padding.rjust(indent+18) + ("<xs:documentation>\n")
+ dt_str += padding.rjust(indent+18) + (enumList[n][0]+"\n")
+ dt_str += padding.rjust(indent+18) + ("</xs:documentation>\n")
+ dt_str += padding.rjust(indent+16) + ("</xs:annotation>\n")
+ dt_str += padding.rjust(indent+16) + ("</xs:enumeration>\n")
+
+ dt_str += padding.rjust(indent+14) + ("</xs:restriction>\n")
+ dt_str += padding.rjust(indent+12) + ("</xs:simpleType>\n")
+ else:
+ dt_str += "\n\n************* Error in processing enumerations. *******************\n\n"
+ dt_str += padding.rjust(indent+10) + ("</xs:element>\n")
+ dt_str += padding.rjust(indent+8) + ("</xs:sequence>\n")
+ dt_str += padding.rjust(indent+6) + ("</xs:restriction>\n")
+ dt_str += padding.rjust(indent+4) + ("</xs:complexContent>\n")
+ dt_str += padding.rjust(indent+2) + ("</xs:complexType>\n")
+
+ return dt_str
+
+
def getDvQuantityType(data_name, ct_name, docs, indent, ta,tn,tv,tc,cs):
"""
data_name - string to use for data_name