2012-01-18 4 views
0

하나의 입력 XML과 하나의 XSD가 있어야한다는 요구 사항이 있습니다. 입력 xml 형식에서 XSD를 기반으로하는 다른 xml 형식으로 변환해야합니다. 제가 어떻게이 일을 도와 줄 수 있는지 제발 도와주세요. xml 변환을위한 새로운 기능입니다.XML to XML 변형

+0

어떤 기술 스택을 사용하고 있습니까? –

+1

이것은 지나치게 일반적이며 잘 정의되지 않은 질문입니다. 단지 입력 및 출력 스키마는 단일 변환을 정의하지 않습니다. 첫 번째부터 두 번째까지 무한 개수의 변환이있을 수 있습니다. 누락 된 부분은 변환의 의미 - folowed/implement 될 규칙/요구 사항은 무엇인가? 예를 들어'Person/Name'은'Seller/Name' 또는'Buyer/Name'에 들어갈 수 있습니다. 두 경우 모두 원하는 형식으로 결과가 나오지만 의미의 차이가 중요합니다. –

+1

XSLT를 배워야합니다. 사용자가 질문에 대한 응답으로 XSLT 자습서를 작성할 것으로 기대하지 마십시오. 이미 주변에 꽤 있습니다. 내 경험에 비추어 새로운 언어를 배우는 가장 좋은 방법은 좋은 책을 찾아 커버에서 커버까지 읽는 것부터 시작하는 것입니다. XSLT의 한 가지 장점은 사용중인 모든 기술 스택에서 사용할 수 있다는 것입니다. 그러나 XSLT 1.0 또는 2.0 사용 여부에 대해 일찍 결정해야합니다. XSLT 2.0은 훨씬 강력하지만 널리 사용되지는 않습니다. –

답변

1

XML에서 XML 변환의 경우 XSLT을 사용할 수 있습니다. 샘플 here을 참조하십시오. 당신이 자바를 사용하는 경우, 샘플 here

// parse an XML document into a DOM tree 
DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document document = parser.parse(new File("instance.xml")); 

// create a SchemaFactory capable of understanding WXS schemas 
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 

// load a WXS schema, represented by a Schema instance 
Source schemaFile = new StreamSource(new File("mySchema.xsd")); 
Schema schema = factory.newSchema(schemaFile); 

// create a Validator instance, which can be used to validate an instance document 
Validator validator = schema.newValidator(); 

// validate the DOM tree 
try { 
    validator.validate(new DOMSource(document)); 
} catch (SAXException e) { 
    // instance document is invalid! 
} 

XSD 유효성 검사 javax.xml.validation.Schema를 사용합니다. 당신은 XSLT를 사용하거나 Marshaller class

0

XSLT를 통해 XML에 같은 JAXB를 통해 POJO하기 위해 XML에서 변환을 사용하여 마샬 할 수있는 경우

변환에

은 또한 코드 인의 TransformerFactory를 사용 ... 당신은 필요 출력을 원하는대로 정의하십시오.
XSD를 미리 정의 했으므로 변환 후 결과 XML을 알아야합니다. 그래서 디자인 XSL에 따라 코드 ..

그리고 XSD은 (어떤 실제 시스템) .. 이제 다음 모든 변경되지 것입니다 ..