Delphi XML绑定向导和可选元素
在我的XSD中,我有:Delphi XML绑定向导和可选元素,xml,delphi,data-binding,Xml,Delphi,Data Binding,在我的XSD中,我有: <xs:complexType name="scheduleLocation"> <xs:sequence> <xs:element name="arrivalTime" type="hhmmss" default="00:00:00" minOccurs="0"/> <xs:element name="departureTime" type="hhmmss" default="00:00:00
<xs:complexType name="scheduleLocation">
<xs:sequence>
<xs:element name="arrivalTime" type="hhmmss" default="00:00:00" minOccurs="0"/>
<xs:element name="departureTime" type="hhmmss" default="00:00:00" minOccurs="0"/>
<xs:element name="passingTime" type="xs:boolean" default="false" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
当然,如果我试图获取传递的时间值,那么当XML中没有指定passingTime时,它就会崩溃。有什么办法可以解决这个问题吗?用巫师耍点小把戏?另外,我认为默认值被忽略。我必须手工编辑结果吗
顺便说一句,xsd.exe会生成xxx指定的字段,这在这里会有所帮助。好的,XML数据绑定向导不考虑默认值,您必须手动对它们进行编码:
function TXMLScheduleLocation.Get_PassingTime: Boolean;
begin
if ChildNodes['passingTime'].NodeValue = null then
Result := false
else
Result := ChildNodes['passingTime'].NodeValue;
end;
我怀疑这就是我最后要做的!谢谢
function TXMLScheduleLocation.Get_PassingTime: Boolean;
begin
Result := ChildNodes['passingTime'].NodeValue;
end;
function TXMLScheduleLocation.Get_PassingTime: Boolean;
begin
if ChildNodes['passingTime'].NodeValue = null then
Result := false
else
Result := ChildNodes['passingTime'].NodeValue;
end;