2016-07-26 2 views
0

asp.net C#에서 XMI 파일을 읽고 트리보기로 표시하는 방법. XMI는 XML과 다른 형식을 가지고 있습니다. asp.net C#에서 다음 형식의 XMI 파일 데이터를 읽고 싶습니다. 주어진 XMI에 대한 형식. 당신이 원하는 경우 중 하나가 내가이 형식을 읽고 마지막에 C#으로 트리 형식으로Asp.net C#을 사용한 XMI 파일 읽기 및 트리보기에서 표시

<?xml version="1.0" encoding="UTF-8"?> 

<xmi:Extension extender="Visual Paradigm"> 
     <nickname exportedFromDifferentName="false"/> 
    </xmi:Extension> 
</xmi:Documentation> 
<xmi:Extension extender="Visual Paradigm"> 
    <projectProperties> 
     <projectProperty name="author" value="Dell"/> 
     <projectProperty name="description" value="test"/> 
    </projectProperties> 
    <ProjectOptions> 
     <IDPositionRotation> 
      <Positions> 
       <Position id="BPTask" value="\u0004"/> 
       <Position id="BPSubProcess" value="\u0004"/> 
      </Positions> 
      <Positions> 
       <Rotation id="BPTask" value="\u0000"/> 
       <Rotation id="BPSubProcess" value="\u0000"/> 


      </Positions> 
     </IDPositionRotation> 

     <LanguageDataType> 
      <LanguageDataTypeModel id="Java" name="Java"> 
       <DataType>boolean</DataType> 
       <DataType>byte</DataType> 

      </LanguageDataTypeModel> 



      <LanguageDataTypeModel id="UML" name="UML"> 
       <DataType>boolean</DataType> 
       <DataType>byte</DataType> 


      </LanguageDataTypeModel> 
     </LanguageDataType> 

     <GeneralOptions confirmSubLevelIdWithDot="true"/> 

     <ModelQualityOptions enableModelQualityChecking="false"/> 
     <OfficeExchangeOptions generateBlankModel="false" generateTableOfContent="true" insertPageBreak="true"/> 
     <ORMOptions decimalPrecision="19" decimalScale="0" exportCommentToDatabase="true" formattedSQL="false" generateAssociationWithAttribute="false" generateDiagramFromORMWizards="true" getterSetterVisibility="\u0000" idGeneratorType="native" mappingFileColumnOrder="\u0000" numericToClassType="\u0000" quoteSQLIdentifier="\u0000" recreateShapeWhenSync="false" syncToClassDiagramAttributeName="\u0001" syncToClassDiagramAttributeNamePrefix="" syncToClassDiagramAttributeNameSuffix="" syncToClassDiagramClassName="\u0000" syncToClassDiagramClassNamePrefix="" syncToClassDiagramClassNameSuffix="" syncToERDColumnName="\u0000" syncToERDColumnNamePrefix="" syncToERDColumnNameSuffix="" syncToERDTableName="\u0004" syncToERDTableNamePrefix="" syncToERDTableNameSuffix="" synchronizeDefaultValueToColumn="false" synchronizeName="\u0002" tablePerSubclassFKMapping="\u0000" upperCaseSQL="true" useDefaultDecimal="true" wrappingServletRequest="\u0001"/> 
     <RequirementDiagramOptions defaultWrapMember="false" showAttributes="\u0001" supportHTMLAttribute="false"/> 
     <StateCodeEngineOptions autoCreateInitialStateInStateDiagram="true" autoCreateTransitionMethods="true" defaultInitialStateLocationX="-1" defaultInitialStateLocationY="-1" generateDebugMessage="false" generateSample="true" generateTryCatch="true" language="\u0000" regenerateTransitionMethods="false" syncTransitionMethods="true"/> 
     <WarningOptions createORMClassInDefaultPackage="true"/> 
     <PORepository> 
      <POUserIDFormats> 
       <POUserIDFormat digits="2" guid="false" id="s_eav6qAUEBg4gV9" lastNumericValue="0" modelType="BPMNElement" prefix="BP" suffix=""/> 
       <POUserIDFormat digits="2" guid="false" id="s_eav6qAUEBg4gV." lastNumericValue="0" modelType="Actor" prefix="AC" suffix=""/> 

      </POUserIDFormats> 
     </PORepository> 
    </ProjectOptions> 
</xmi:Extension> 
<uml:Model name="Online Bookshop" xmi:id="ineav6qAUEBg4gOG"> 
    <xmi:Extension extender="Visual Paradigm"> 
     <vpumlChildModels> 
      <vpumlModel id="mneav6qAUEBg4gOR" modelType="WSDLContainer"> 
       <properties> 
        <property name="name" type="string" value="WSDLContainer"/> 
        <property name="modelType" type="string" value="WSDLContainer"/> 
       </properties> 
       <vpumlChildModelRefs> 
        <modelRef value="uneav6qAUEBg4gOS"/> 
       </vpumlChildModelRefs> 

      </vpumlModel> 


      <vpumlModel id="jneav6qAUEBg4gPL" modelType="PMPriorityContainer"> 
       <properties> 
        <property name="name" type="string" value=""/> 
        <property name="modelType" type="string" value="PMPriorityContainer"/> 
       </properties> 
       <vpumlChildModelRefs> 
        <modelRef value="jneav6qAUEBg4gPM"/> 
        <modelRef value="jneav6qAUEBg4gPN"/> 
        <modelRef value="jneav6qAUEBg4gPO"/> 
       </vpumlChildModelRefs> 
       <vpumlChildModels> 
        <vpumlModel id="jneav6qAUEBg4gPM" modelType="PMPriority"> 
         <properties> 
          <property name="name" type="string" value="Low"/> 
          <property name="modelType" type="string" value="PMPriority"/> 
         </properties> 
        </vpumlModel> 
        <vpumlModel id="jneav6qAUEBg4gPN" modelType="PMPriority"> 
         <properties> 
          <property name="name" type="string" value="Medium"/> 
          <property name="modelType" type="string" value="PMPriority"/> 
         </properties> 
        </vpumlModel> 
        <vpumlModel id="jneav6qAUEBg4gPO" modelType="PMPriority"> 
         <properties> 
          <property name="name" type="string" value="High"/> 
          <property name="modelType" type="string" value="PMPriority"/> 
         </properties> 
        </vpumlModel> 
       </vpumlChildModels> 
      </vpumlModel> 


     </vpumlChildModels> 
    </xmi:Extension> 
    <ownedMember name="UseCase" xmi:id="UseCase_UseCase_id" xmi:type="uml:Stereotype"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <baseType value="UseCase"/> 
      <taggedValueDefinitions> 
       <taggedValueDefinition htmlValue="" id="hveav6qAUEBg4gVn" name="Level" type="2" value=""> 
        <value value="Summary"/> 
        <value value="User"/> 
        <value value="Subfunction"/> 
       </taggedValueDefinition> 

       <taggedValueDefinition htmlValue="" id="pveav6qAUEBg4gVr" name="Preconditions" type="4" value=""/> 
       <taggedValueDefinition htmlValue="" id="pveav6qAUEBg4gVs" name="Post-conditions" type="4" value=""/> 

      </taggedValueDefinitions> 
      <qualityScore value="-1"/> 
     </xmi:Extension> 
    </ownedMember> 
    <ownedMember name="Case Story" xmi:id="UseCase_Case Story_id" xmi:type="uml:Stereotype"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <baseType value="UseCase"/> 
      <qualityScore value="-1"/> 
     </xmi:Extension> 
    </ownedMember> 
    <ownedMember name="requirement" xmi:id="Requirement_requirement_id" xmi:type="uml:Stereotype"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <baseType value="Requirement"/> 
      <taggedValueDefinitions> 

       <taggedValueDefinition htmlValue="" id="tfeav6qAUEBg4gV4" name="kind" type="2" value=""> 
        <value value="Functional"/> 
        <value value="Performance"/> 
        <value value="Interface"/> 
       </taggedValueDefinition> 

      </taggedValueDefinitions> 
      <qualityScore value="-1"/> 
     </xmi:Extension> 
    </ownedMember> 
    <ownedMember xmi:type="uml:Collaboration"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <dummyModel value="true"/> 
     </xmi:Extension> 
     <ownedBehavior name="Communication Diagram" xmi:id="..HGv6qAUEBg4gWI" xmi:type="uml:Interaction"> 
      <lifeline name="online book shop" represents="ydguv6qAUEBg4gcZ_represents" xmi:id="ydguv6qAUEBg4gcZ" xmi:type="uml:Lifeline"> 
       <lowerValue value="1" xmi:id="ydguv6qAUEBg4gcZ_multiplicity_lowerValue" xmi:type="uml:LiteralString"/> 
       <upperValue value="*" xmi:id="ydguv6qAUEBg4gcZ_multiplicity_upperValue" xmi:type="uml:LiteralString"/> 
       <xmi:Extension extender="Visual Paradigm"> 
        <active xmi:value="false"/> 
        <stopped xmi:value="false"/> 
        <multiObject xmi:value="false"/> 
        <lifeline/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
       <coveredBy xmi:idref="auR_gGqAUEBg4gnk"/> 
       <coveredBy xmi:idref="2E9_gGqAUEBg4gn6"/> 

      </lifeline> 
      <ownedConnector xmi:id="D_Fo_6qAUEBg4gk1" xmi:type="uml:Connector"> 
       <end role="ydguv6qAUEBg4gcZ" xmi:id="D_Fo_6qAUEBg4gk2" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 


      </ownedConnector> 
      <ownedConnector xmi:id="Qa6Y_6qAUEBg4gmC" xmi:type="uml:Connector"> 
       <end role="ydguv6qAUEBg4gcZ" xmi:id="Qa6Y_6qAUEBg4gmD" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 


       <ownedRule constrainedElement="n0XgQGqAUEBg4gsC" name="Order_complete" xmi:id="M792QGqAUEBg4gyr"> 
        <specification body="self.order&gt;0" xmi:type="uml:OpaqueExpression"/> 
        <xmi:Extension extender="Visual Paradigm"> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </ownedRule> 
      </ownedConnector> 
      <ownedConnector xmi:id="3CmY_6qAUEBg4gmI" xmi:type="uml:Connector"> 
       <end role="ydguv6qAUEBg4gcZ" xmi:id="3CmY_6qAUEBg4gmJ" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 

       <xmi:Extension extender="Visual Paradigm"> 
        <modelType value="InteractionLifeLineLink"/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
      </ownedConnector> 
      <fragment covered="ydguv6qAUEBg4gcZ" message="auR_gGqAUEBg4gnj" xmi:id="auR_gGqAUEBg4gnk" xmi:type="uml:EventOccurrence"> 
       <xmi:Extension extender="Visual Paradigm"> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
      </fragment> 

      <fragment covered="GypQ_6qAUEBg4ggf" message="2E9_gGqAUEBg4gn5" xmi:id="2E9_gGqAUEBg4gn7" xmi:type="uml:EventOccurrence"> 
       <xmi:Extension extender="Visual Paradigm"> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
      </fragment> 
      <ownedConnector xmi:id="EzegQGqAUEBg4grB" xmi:type="uml:Connector"> 
       <end role="ydguv6qAUEBg4gcZ" xmi:id="EzegQGqAUEBg4grC" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 

      </ownedConnector> 


      <message connector="6jguv6qAUEBg4gce" name="find_books()" receiveEvent="wLguv6qAUEBg4gcn" sendEvent="wLguv6qAUEBg4gcm" xmi:id="wLguv6qAUEBg4gcl" xmi:type="uml:Message"> 
       <signature xmi:id="wLguv6qAUEBg4gcl_type" xmi:type="uml:Action"/> 
       <xmi:Extension extender="Visual Paradigm"> 
        <returnValue name="" xmi:id="jtfQQGqAUEBg4gtR" xmi:type="uml:ReplyAction"> 
         <xmi:Extension extender="Visual Paradigm"> 
          <iteration xmi:value="false"/> 
          <asynshronous xmi:value="false"/> 
          <qualityScore value="-1"/> 
         </xmi:Extension> 
        </returnValue> 
        <number xmi:value="1"/> 
        <asynshronous xmi:value="false"/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
      </message> 

      <ownedAttribute name="online book shop" xmi:id="ydguv6qAUEBg4gcZ_represents"/> 
      <lifeline name="inventory" represents="mdyff6qAUEBg4ggL_represents" xmi:id="mdyff6qAUEBg4ggL" xmi:type="uml:Lifeline"> 
       <xmi:Extension extender="Visual Paradigm"> 
        <active xmi:value="false"/> 
        <stopped xmi:value="false"/> 
        <multiObject xmi:value="false"/> 
        <lifeline/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
       <coveredBy xmi:idref="n0XgQGqAUEBg4gsE"/> 
      </lifeline> 
      <ownedAttribute name="inventory" xmi:id="mdyff6qAUEBg4ggL_represents"/> 
      <lifeline name=" Book_price" represents="WeRQ_6qAUEBg4ggW_represents" xmi:id="WeRQ_6qAUEBg4ggW" xmi:type="uml:Lifeline"> 
       <xmi:Extension extender="Visual Paradigm"> 
        <active xmi:value="false"/> 
        <stopped xmi:value="false"/> 
        <multiObject xmi:value="false"/> 
        <lifeline/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
       <coveredBy xmi:idref="auR_gGqAUEBg4gnl"/> 
      </lifeline> 
      <ownedAttribute name=" Book_price" xmi:id="WeRQ_6qAUEBg4ggW_represents"/> 

      <ownedConnector xmi:id="5FbGQGqAUEBg4gw." xmi:type="uml:Connector"> 
       <end role="3cGo_6qAUEBg4gkc" xmi:id="5FbGQGqAUEBg4gw_" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 
       <end role="Z2TGQGqAUEBg4gw5" xmi:id="5FbGQGqAUEBg4gxA" xmi:type="uml:ConnectorEnd"> 
        <xmi:Extension extender="Visual Paradigm"> 
         <modelType value="InteractionLifeLineLinkEnd"/> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </end> 
       <xmi:Extension extender="Visual Paradigm"> 
        <modelType value="InteractionLifeLineLink"/> 
        <qualityScore value="-1"/> 
       </xmi:Extension> 
       <ownedRule constrainedElement="2SnGQGqAUEBg4gxK" name="Gift" xmi:id="1Cq2QGqAUEBg4gyh"> 
        <specification body="(r&gt;10)^(x*r=&lt;200)" xmi:type="uml:OpaqueExpression"/> 
        <xmi:Extension extender="Visual Paradigm"> 
         <qualityScore value="-1"/> 
        </xmi:Extension> 
       </ownedRule> 
      </ownedConnector> 

      <ownedAttribute name="Actor" xmi:id="nEWmv6qAUEBg4gWa_represents"/> 
      <xmi:Extension extender="Visual Paradigm"> 
       <qualityScore value="-1"/> 
      </xmi:Extension> 
     </ownedBehavior> 
    </ownedMember> 
    <ownedMember name="entity" xmi:id="InteractionLifeLine_entity_id" xmi:type="uml:Stereotype"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <baseType value="InteractionLifeLine"/> 
      <qualityScore value="-1"/> 
     </xmi:Extension> 
    </ownedMember> 
    <ownedMember name="boundary" xmi:id="InteractionLifeLine_boundary_id" xmi:type="uml:Stereotype"> 
     <xmi:Extension extender="Visual Paradigm"> 
      <baseType value="InteractionLifeLine"/> 
      <qualityScore value="-1"/> 
     </xmi:Extension> 
    </ownedMember> 
</uml:Model> 

답변

0

오을이 XMI를 변환 할 수있는 방법을 제안 해주십시오 수, 나는이 해결책을 발견 XMI 1.0 및 1.2 버전 파일을 읽으려면 아래에서 코드를 다운로드하고 XMI 모델의 계층 구조보기 및 코드를 생성 할 수 있습니다.

XMI Read with C# and generate Hierarchy and Code of XMI Model

0

당신은 C#에서 XML 파일을 읽은 다음 사용자 정의 클래스로를 저장하여 XDocument를 사용할 수 있습니다.

이제 반복을 통해 데이터베이스에 저장할 수 있습니다.

public CatSubCatList GenerateCategoryListFromProductFeedXML() 
    { 
     string path = System.Web.HttpContext.Current.Server.MapPath(_xmlFilePath); 

     XDocument xDoc = XDocument.Load(path); 

     XElement xElement = XElement.Parse(xDoc.ToString()); 


     List<Category> lstCategory = xElement.Elements("Product").Select(d => new Category 
     { 
      Code = Convert.ToString(d.Element("CategoryCode").Value), 
      CategoryPath = d.Element("CategoryPath").Value, 
      Name = GetCateOrSubCategory(d.Element("CategoryPath").Value, 0), // Category 
      SubCategoryName = GetCateOrSubCategory(d.Element("CategoryPath").Value, 1) // Sub Category 
     }).GroupBy(x => new { x.Code, x.SubCategoryName }).Select(x => x.First()).ToList(); 

     CatSubCatList catSubCatList = GetFinalCategoryListFromXML(lstCategory); 

     return catSubCatList; 
    }