Java는 jaxb를 사용하여 xml 예제를 작동합니다.
먼저 후속 샘플 데모를 위해 두 개의 샘플 클래스인 ClassA와 ClassB를 정의합니다.
package cn.lzrabbit; public class ClassA { private int classAId; private String classAName; private ClassB classB; public int getClassAId() { return classAId; } public void setClassAId(int classAId) { this.classAId = classAId; } public String getClassAName() { return classAName; } public void setClassAName(String classAName) { this.classAName = classAName; } public ClassB getClassB() { return classB; } public void setClassB(ClassB classB) { this.classB = classB; } } ClassA
package cn.lzrabbit; public class ClassB { private int classBId; private String classBName; public int getClassBId() { return classBId; } public void setClassBId(int classBId) { this.classBId = classBId; } public String getClassBName() { return classBName; } public void setClassBName(String classBName) { this.classBName = classBName; } } ClassB
직렬화를 위한 XmlUtil
package cn.lzrabbit; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.*; public class XmlUtil { public static String toXML(Object obj) { try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// //编码格式 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); return writer.toString(); } catch (Exception e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public static <T> T fromXML(String xml, Class<T> valueType) { try { JAXBContext context = JAXBContext.newInstance(valueType); Unmarshaller unmarshaller = context.createUnmarshaller(); return (T) unmarshaller.unmarshal(new StringReader(xml)); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } } XmlUtil
은 다음과 같이 호출됩니다.
package cn.lzrabbit; public class MainRun { /** * @param args */ public static void main(String[] args) { ClassB classB = new ClassB(); classB.setClassBId(22); classB.setClassBName("B2"); ClassA classA = new ClassA(); classA.setClassAId(11); classA.setClassAName("A1"); classA.setClassB(classB); System.out.println(XmlUtil.toXML(classA)); } } MainRun
출력 결과는 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <classA> <classAId>11</classAId> <classAName>A1</classAName> <classB> <classBId>22</classBId> <classBName>B2</classBName> </classB> </classA>
다음 사항에 유의해야 합니다
1 직렬화할 클래스에 @XmlRootElement 주석을 추가합니다. 그렇지 않으면 오류가 발생합니다. (오류 프롬프트가 매우 명확하므로 여기에 게시하지 않겠습니다.)
2 JAXB가 XML을 직렬화할 때 getter와 setter는 기본적으로 직렬화되며 getter와 setter는 쌍으로 나타나야 합니다. 직렬화된
3개 속성 이름, 기본적으로 직렬화된 클래스 및 속성 이름의 첫 글자는 소문자로 변환됩니다. 속성 이름을 제어해야 하는 경우 @XmlElement(name="ClassAId")를 사용해야 합니다. 여기서 주목해야 할 것은 @XmlElement입니다. getter 또는 setter에 배치할 수 있지만 하나만 배치할 수 있으므로 @XmlElement 주석을 getter와 setter 모두에 사용할 수는 없습니다. setter at same time
4 루트 노드 이름을 제어하는 방법은 무엇입니까?
@XmlRootElement를 사용하여 @XmlRootElement(name="ClassA")와 같은 이름 특성을 지정합니다.
5 네임스페이스를 추가하는 방법
@XmlRootElement(namespace="cn.lzrabbit") 사용 네임스페이스 속성 지정
6 각 속성 이름을 정확하게 제어하는 방법
JAXB는 자동으로 첫 글자를 소문자로 변환하므로 예측할 수 없는 속성 이름이 표시됩니다. 번거롭지 않다면 @XmlElement( name="") 각 속성에 대해 문제를 해결하려면 Field
7 직렬화 시 setter 및 getter를 사용하는 대신 Field 필드를 사용하는 방법
@XmlAccessorType(XmlAccessType.FIELD) 추가 XmlAccessType.FIELD의 경우 @XmlAccessorType(XmlAccessType.FIELD) 주석을 사용하는 것이 좋습니다. 이렇게 하면 @XmlElement를 설정하지 않고도 각 요소의 이름을 정확하게 제어할 수 있기 때문입니다. (name="") 각 속성에 대한 주석은 물론 필드에 @XmlElement 주석을 사용할 수도 있습니다.
다음은 위 주석을 사용한 코드 예입니다
@XmlRootElement(namespace="cn.lzrabbit") @XmlAccessorType(XmlAccessType.FIELD) public class ClassA { private int classAId; @XmlElement(name="ClassAName") private String classAName; private ClassB classB; public int getClassAId() { return classAId; } public void setClassAId(int classAId) { this.classAId = classAId; } public String getClassAName() { return classAName; } public void setClassAName(String classAName) { this.classAName = classAName; } public ClassB getClassB() { return classB; } public void setClassB(ClassB classB) { this.classB = classB; } } @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class ClassB { private int ClassBId; private String ClassBName; public int getClassBId() { return ClassBId; } public void setClassBId(int classBId) { this.ClassBId = classBId; } public String getClassBName() { return ClassBName; } public void setClassBName(String classBName) { this.ClassBName = classBName; } }
출력 xml은
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:classA xmlns:ns2="cn.lzrabbit"> <classAId>11</classAId> <ClassAName>A1</ClassAName> <classB> <ClassBId>22</ClassBId> <ClassBName>B2</ClassBName> </classB> </ns2:classA>
More입니다. jaxb를 사용하여 xml 예제를 작동하는 여러 Java 관련 기사는 PHP 중국어 웹사이트에 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











모바일 XML에서 PDF의 속도는 다음 요인에 따라 다릅니다. XML 구조의 복잡성. 모바일 하드웨어 구성 변환 방법 (라이브러리, 알고리즘) 코드 품질 최적화 방법 (효율적인 라이브러리 선택, 알고리즘 최적화, 캐시 데이터 및 다중 스레딩 사용). 전반적으로 절대적인 답변은 없으며 특정 상황에 따라 최적화해야합니다.

단일 애플리케이션으로 휴대 전화에서 직접 XML에서 PDF 변환을 완료하는 것은 불가능합니다. 두 단계를 통해 달성 할 수있는 클라우드 서비스를 사용해야합니다. 1. 클라우드에서 XML을 PDF로 변환하십시오. 2. 휴대 전화에서 변환 된 PDF 파일에 액세스하거나 다운로드하십시오.

휴대 전화에서 XML을 PDF로 직접 변환하는 것은 쉽지 않지만 클라우드 서비스를 통해 달성 할 수 있습니다. 가벼운 모바일 앱을 사용하여 XML 파일을 업로드하고 생성 된 PDF를 수신하고 클라우드 API로 변환하는 것이 좋습니다. Cloud API는 Serverless Computing Services를 사용하고 올바른 플랫폼을 선택하는 것이 중요합니다. XML 구문 분석 및 PDF 생성을 처리 할 때 복잡성, 오류 처리, 보안 및 최적화 전략을 고려해야합니다. 전체 프로세스에는 프론트 엔드 앱과 백엔드 API가 함께 작동해야하며 다양한 기술에 대한 이해가 필요합니다.

XML 서식 도구는 규칙에 따라 코드를 입력하여 가독성과 이해를 향상시킬 수 있습니다. 도구를 선택할 때는 사용자 정의 기능, 특수 상황 처리, 성능 및 사용 편의성에주의하십시오. 일반적으로 사용되는 도구 유형에는 온라인 도구, IDE 플러그인 및 명령 줄 도구가 포함됩니다.

대부분의 텍스트 편집기를 사용하여 XML 파일을여십시오. 보다 직관적 인 트리 디스플레이가 필요한 경우 Oxygen XML 편집기 또는 XMLSPy와 같은 XML 편집기를 사용할 수 있습니다. 프로그램에서 XML 데이터를 처리하는 경우 프로그래밍 언어 (예 : Python) 및 XML 라이브러 (예 : XML.etree.elementtree)를 사용하여 구문 분석해야합니다.

XML을 PDF로 직접 변환하는 응용 프로그램은 근본적으로 다른 두 형식이므로 찾을 수 없습니다. XML은 데이터를 저장하는 데 사용되는 반면 PDF는 문서를 표시하는 데 사용됩니다. 변환을 완료하려면 Python 및 ReportLab과 같은 프로그래밍 언어 및 라이브러리를 사용하여 XML 데이터를 구문 분석하고 PDF 문서를 생성 할 수 있습니다.

XML 온라인 형식 도구는 지저분한 XML 코드를 읽기 쉬운 형식으로 자동 구성하고 형식을 유지 관리합니다. XML의 구문 트리를 구문 분석하고 서식 규칙을 적용함으로써 이러한 도구는 코드의 구조를 최적화하여 유지 관리 가능성과 팀워크 효율성을 향상시킵니다.

XML을 이미지 및 제어 색상으로 변환하려면 XML 데이터를 픽셀 색상, 모양 및 레이아웃으로 변환하기 위해 프로그램을 사용해야합니다. 색상 제어의 핵심은 프로그램이 XML 데이터를 해석하고 색상으로 변환하는 방법입니다. XML의 색상 속성은 색 맵을 사용하여 해당 요소에 할당 할 수 있지만보다 복잡한 XML 구조의 경우 데이터 크기, 범위 또는 유형을 기반으로 색상을 결정하려면보다 정교한 알고리즘이 필요합니다. 보다 고급 그래픽 라이브러리는보다 강력한 색상 제어 옵션을 제공 할 수 있으며 최적화는 대형 파일의 성능 고려 사항의 핵심입니다.
