2010-08-17 2 views
4

유효한 XML 이름이되도록 문자열을 변형/이스케이프하는 도우미가 있습니까?Java에서 유효한 XML 이름을 생성하십시오.

예를 들어, 문자열이 max(OfAll)이고 일부 XML을 생성해야합니다.

<max(OfAll)>SomeText</<max(OfAll)> 

분명히 유효한 이름이 아닙니다. 올바른 xml 이름으로 문자열을 변형 할 수있는 몇 가지 도우미 메소드가 있습니까?

는 (비교를 위해, .NET 위의 XML 조각이 될 몇 가지 방법이 있습니다. 다른 상황에서 유용 할 수 있습니다

<max_x028_OfAll_x028_>SomeText</<max_x028_OfAll_x028_>) 

답변

2

.NET 예제의 인코딩은 ISO9075에 정의 된 것과 같습니다. jdk에 내장 된 구현이 있다고 생각하지 않지만이 인코딩은 xml 가져 오기/내보내기 및 쿼리 api에 대해 alfresco 또는 jackrabbit과 같은 컨텐츠 저장소에서도 사용됩니다. 빠른 검색은 오픈 소스 라이선스에 따라,이 두 가지 구현을 사용할 수 모두 켜져 :

0

한 클래스는 아파치 평민 - 랭 프로젝트 StringEscapeUtils입니다 그것은 수 내가 XML 요소 이름을 탈출하는 것을 잘 모르는 것 같아요, XML 문서에서 사용하는 텍스트를 탈출.

당신이 생성 할 수 없습니다 뭔가 더 읽기 등

<aggregation type="max(OfAll)">SomeText</aggregation> 

JAXB합니다 (JDK의 일부), JiBX, Castor, 나는 그것에 대해 모든 도우미 방법을 알고하지 않습니다 XStream

0

을 포함하여 XML 다시 마샬/비 정렬 화 객체가 사용할 라이브러리를 많이하지만, 규칙 여기 http://www.w3.org/TR/REC-xml/#NT-Name이 있습니다 꽤 직설적이어서 구현하기 쉽습니다.

0

으로이 명확해야, 일반 XML 탈출 (대체 문자 기관과 부적절한 문자) 수행 유효한 XML 식별자가 생성되지 않습니다.

기록을 위해, 당신이하는 일은 종종 "이름 맹 글링 (name mangling)"이라고 불립니다.

관련 문제