我正在嘗試編寫適當的結構標記集來解析XML version of UCUM。以下是unit
標籤的兩個例子:如何在Go xml結構標記中表示替換項
<unit Code="deg" CODE="DEG" isMetric="no" class="iso1000">
<name>degree</name>
<printSymbol>°</printSymbol>
<property>plane angle</property>
<value Unit="[pi].rad/360" UNIT="[PI].RAD/360" value="2">2</value>
</unit>
<unit Code="[degF]" CODE="[DEGF]" isMetric="no" isSpecial="yes" class="heat">
<name>degree Fahrenheit</name>
<printSymbol>°F</printSymbol>
<property>temperature</property>
<value Unit="degf(5 K/9)" UNIT="DEGF(5 K/9)">
<function name="degF" value="5" Unit="K/9"/>
</value>
</unit>
棘手的部分是value
標籤的內容,它可以是一個字符串(我與串屬性表示)或功能(這將需要一個自己的結構)。這是我到目前爲止:
type Unit struct {
Code string `xml:Code,attr`
CodeCaps string `xml:CODE,attr`
IsMetric bool `xml:isMetric,attr,omitempty`
IsSpecial bool `xml:isEmptySpecial,attr,omitempty`
Class string `xml:class,attr`
Name string `xml:name`
PrintSymbol string `xml:printSymbol,chardata`
DimensionTypeKey string `xml:property,chardata`
Value struct {
Unit string `xml:Unit,attr`
UnitCaps string `xml:UNIT,attr`
Value string `xml:Value,attr`
PrintValue string `xml:,chardata`
Function struct { ... }
} `xml:value`
}
我該如何準確地描述這個帶有結構標籤的XML?