2013-07-08 5 views
0

XSD가 있습니다. "element name ="값을 추출하여 Excel 시트에 쓰고 싶습니다. 어떻게해야합니까?XSD에서 요소 이름 값을 추출하고 Excel로 가져옵니다.

내 마음에있는 것들은 bufferedreader/XPATH/jaxb/Apache POI입니다. 그러나 나는 전에 이것들을 사용하지 않았다. 도와주세요!

시료 입력 :

<?xml version="1.0" ?> 
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:gw="XX" xmlns="XXXX" targetNamespace="XXXXX" elementFormDefault="qualified" xmlns:ns0="XXXXXX" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"> 
    <xsd:annotation> 
     <xsd:appinfo> 
      <jaxb:schemaBindings> 
       <jaxb:package name="XXXXXXXX" /> 
      </jaxb:schemaBindings> 
     </xsd:appinfo> 
    </xsd:annotation> 

<xsd:import namespace="XXXXXXXX" /> 
<xsd:element name="sample" type="sample" nillable="true" /> 
<xsd:complexType name="sample"> 
    <xsd:sequence> 
     <xsd:element name="tempTerms" minOccurs="0" nillable="true"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element name="Input" minOccurs="0" maxOccurs="unbounded" nillable="true" type="ns0:tempTerm" /> 
       </xsd:sequence> 
      </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="PatternCode" minOccurs="0" nillable="true" type="xsd:string" gw:type="java.lang.String" /> 
    </xsd:sequence> 
    </xsd:complexType> 
</xsd:schema> 

샘플 출력 :

열 이름은 XLS :

sample 
tempTerms 
Input 
PatternCode 

답변

0

distinct-values(//xs:element/@name) 당신에게에서 구별 요소 이름을 줄 것이다 XPath는 2.0 식 스키마. 서. XPath 프로세서가 네임 스페이스 바인딩 xs = http://www.w3.org/2001/XMLSchema으로 설정되어 있는지 확인해야합니다.

일반적으로 결과는 상당히 의미가 없습니다. 여기에는 포함 및 가져온 스키마 문서의 요소 이름이 제외되며 동일한 이름과 정의가 다른 여러 개의 로컬 요소 선언이있을 수 있습니다. 그러나 그것은 당신이 원했던 것이며, 그것이 유용하지 않다면 그건 내 문제가 아닙니다.

+0

응답 해 주셔서 감사합니다. 당신은 실제로 옳았습니다. 내 ** 실제 ** 작업은 포함 및 가져온 스키마 문서에 요소 이름을 포함시키는 것입니다. 동일한 기법 (XPATH)을 사용할 수 있습니까? 아니면 다른 것을 제안 해 주시겠습니까? JAXB/XSOM의 라인을 따라 뭔가 생각하고있었습니다. 어떤 옵션이 최선인지 확실치 않습니다. – VictorCreator

+0

일반적으로 소스 XSD 문서에서 정보를 얻는 것은 사용자가 동일한 것을 작성할 수있는 여러 가지 방법이 있기 때문에 어렵습니다. 컴파일 된 스키마에 대한 액세스를 제공하는 API를 사용하는 것이 훨씬 더 좋습니다. 예를 들어 Saxon 스키마 프로세서를 사용하면 컴파일 된 스키마를 XML 형식으로 덤프 할 수 있습니다. 나는 여전히 실제 과제의 진짜 문제가 무엇인지 알고 싶다.이 요소 이름을 무엇에 사용할 것인가? –

+0

첫째, 이러한 XSD는 데이터베이스의 데이터를 나타냅니다. 나중에 데이터 전송 작업을 위해 이러한 XSD 각각을 준수하는 여러 XML을 생성합니다. (더 큰 그림입니다) 여기에서는 이러한 엑셀 시트를 메타 데이터 저장에 사용하고자합니다 (데이터 유형, 길이, 설명 등의 정보 제공). 그것의 단지 참조 용. 현재 요소 이름과 포함/가져온 스키마 문서의 요소 이름을 수동으로 복사하여 붙여 넣습니다. 수동으로 요소 복사 및 가져온/링크 된 이름을 붙여 넣을 수있는 프로세스를 최소한 자동화하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 도와주세요 – VictorCreator

관련 문제