2012-10-18 24 views
6

से सभी फ़ील्ड प्राप्त करें मैं xsd स्कीमा से उत्पन्न डेटासोर्स का उपयोग करता हूं। मुझे डेटासोर्स से भी सभी फ़ील्ड प्राप्त करने की ज़रूरत है, जो नेस्टेड भी हैं। मेरी समस्या this topic from Smartclient forum forum की तरह ही है, जब मैं DataSource.getFields() का उपयोग करता हूं, तो यह केवल प्रथम स्तर के फ़ील्ड का उपयोग करता है।डायनामिकफॉर्म

क्या कोई जानता है कि मैं नेस्टेड फ़ील्ड भी कैसे प्राप्त कर सकता हूं?

उत्तर

0

मैं समाधान की आवश्यकता है लगता है। नेस्टेड फ़ील्ड प्राप्त करने के लिए DataSource.getDataSource (ID) का उपयोग करना संभव है। उदाहरण के लिए, यदि डेटा स्रोत मुख्य डेटा स्रोत है, तो इसे इस प्रकार किया जा सकता है:

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>