2012-10-18 145 views

回答

0

我找到了解決方案。要獲取嵌套字段,可以使用DataSource.getDataSource(ID)。例如,如果dataSource是主數據源,則可以這樣完成:

private List<DataSourceField> getAllFields(DataSource dataSource) 
    { 
     List <DataSourceField> fieldList = new ArrayList<DataSourceField>(); 
     DataSourceField [] fields = dataSource.getFields(); 
     fieldList.addAll(Arrays.asList(fields)); 
     for (DataSourceField field : fields); 
     { 
      String fieldName = field.getName(); 
      DataSource ds = DataSource.getDataSource(fieldName); 
      if (ds != null) 
      { 
       fieldList.remove(field); 
       DataSourceField[] nFields = ds.getFields(); 
       fieldList.addAll(Arrays.asList(nFields)); 
       getAllFields(ds); 
      } 
     } 
     return fieldList; 
    } 

1

我不太確定這是否能解決您的問題。 CompanySlaves不是在xsd中的任何地方引用。類型已定義但未使用。

我認爲你需要有<xsd:element name="SomeElementName" type="tns:CompanySlaves"></xsd:element> in your xsd definition

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://xml.netbeans.org/schema/newXmlSchema" 
    xmlns:tns="http://xml.netbeans.org/schema/newXmlSchema" 
    elementFormDefault="qualified"> 
    <xsd:element name="SubrogationClaim" type="tns:SubrogationClame"></xsd:element> 
    <xsd:complexType name="SubrogationClame"> 
     <xsd:sequence> 
      <xsd:element name="CompanyName" type="xsd:string"></xsd:element> 
      <xsd:element name="CompanyPlace" type="xsd:string"></xsd:element> 
      <xsd:element name="CompanyEmploee" type="tns:SubrogationClame"></xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    <xsd:complexType name="CompanySlaves"> 
     <xsd:sequence> 
      <xsd:element name="EmploeeName" type="xsd:string"></xsd:element> 
      <xsd:element name="EmploeeSalary" type="xsd:string"></xsd:element> 
     </xsd:sequence> 
    </xsd:ComplexType> 
</xsd:schema> 
相關問題