2016-07-22 1 views
-2

안녕하세요, 작게를 XML : 난 내 XML을 작게를하고 싶은 내 XML

내가 그것을 작게를하고 싶은만큼 적은만큼 내가하지만 우편에게 그것을 압축하지 않으 수는 100 KBS의 말한다. 나는 그것을 한 줄로 만들려고했지만 많은 차이를주지는 않지만 약 10 % (약) xslt를 사용하여 그것을 할 수 있지만 자바 또는 C# 또는 다른 프로그래밍을 사용하고 싶지 않다면 멋질 것입니다. 언어. 나는 나 자신을 분명히하고 싶지만 여전히 의심이 든다면 아래에 주석을 달아달라고한다.

감사합니다.

P. 나는 모든 코드 작성을 위해 Eclipse IDE를 사용하고있다.

+1

XML은 네임 스페이스를 사용합니까? 그렇다면 더 짧은 네임 스페이스 접두어를 사용할 수 있습니다. –

+0

예 .... 그렇습니다. 내가 제거 할 수 없거나 다른 네임 스페이스를 사용하거나 단축 할 수 있습니다. – NealGul

+1

압축하는 것과는 달리 축소로 무엇을 의미하는지 명확하지 않습니다. 공백을 제거하고 10 % 감소시키는 것은 아마도 한계에 매우 근접 할 것입니다. – mzjn

답변

1

XML 파일의 크기를 줄이는 데는 몇 가지 방법이 있습니다.

  • 예를 들어 적절히 선택한 인코딩. UTF-32에서는 파일의 모든 문자가 4 바이트를 차지합니다. UTF-8을 사용하는 것이 좋습니다. 다음과 같은 모든 특수 문자는 <>";'=이 1 바이트를 차지합니다. 그러나 어떤 상황에서는 UTF-8에서 3 ~ 6 바이트를 차지할 많은 문자가있을 것입니다. UTF-16의 동일한 문자는 2 바이트를 차지합니다. 따라서 데이터에 가장 적합한 인코딩을 선택해야합니다.

  • 가능하면 요소 대신 특성을 사용하십시오. 대신 긴 접두사로,

    <person><firstname>John</firstname><lastname>Smit</lastname></person> 
    <person firstname="John" lastname="Smit"/> 
    
  • 사용 짧은 네임 스페이스 접두사 : 결과 문자열의 길이를 비교합니다. 가장 자주 사용되는 데이터의 경우 기본적으로 네임 스페이스를 사용하고 접두사는 사용하지 마십시오. 참조 :

    <longprefix:person xmlns:longprefix="www.example.com"> 
        <longprefix:firstname>John</longprefix:firstname> 
        <longprefix:lastname>Smit</longprefix:lastname> 
    </longprefix:person> 
    
    <p:person xmlns:p="www.example.com"> 
        <p:firstname>John</p:firstname> 
        <p:lastname>Smit</p:lastname> 
    </p:person> 
    

    네임 스페이스가 동일하므로 파서의 경우 동일하므로주의하십시오.

  • 때때로 XML 스키마 또는 DTD는 데이터가있는 XML 파일에 저장됩니다. 유사한 파일이 많이있는 경우 스키마에 여분의 오버 헤드가 저장됩니다. 별도의 파일로 스키마를 만들 수 있습니다.

  • 기본값없이 데이터를 XML 파일에 저장할 수 있습니다. 이 값은 읽을 때 자동으로 추가 할 수 있습니다. 예 :

    <person pet="dog"> 
        <name>John</name> 
    </person> 
    
    <person> 
        <name>Mary</name> 
    </person> 
    

    메리의 애완 동물을 보았습니까? 하지만 거기에! 기본적으로 고양이입니다.

    <xs:element maxOccurs="unbounded" name="person"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="name" type="xs:string" /> 
         </xs:sequence> 
         <xs:attribute name="pet" type="xs:string" default="cat" /> 
        </xs:complexType> 
    </xs:element> 
    
  • 당신은 XML 파일에서 모든 주석을 제거해야합니다. 파일 형식에 대한 설명은 별도로 저장할 수 있습니다.

+0

나쁜 영어로 죄송합니다. 게시물을 마음대로 편집하십시오. 내 자신을 기반으로 자신 만의 답을 쓸 수 있고 적절한 언어로 다시 작성할 수 있습니다. –

+0

내 xml은 매우 동적입니다 ... 저는 매우 역동적 인 것은 없지만 여전히 그렇습니다. 서버 자체에서 생성되므로 기본값으로 설정할 수있는 것이 없습니다. 그것은 네임 스페이스가 하나 뿐이며 너무 짧습니다 ... agian을 다시 사용했습니다. 애트리뷰트 i로 추가 할 수있는 요소는 이미 내 XML을 그런 식으로 변형했습니다. 스키마와 dtd 부분은 내가지고 있지 않다 ..... 어떻게 축소와 관련이 있는가? – NealGul

0

"나는 그것을 축소하려고하지만 압축하고 싶지 않다"는 것을 잘 모르겠다. 축소 및 압축의 차이점은 무엇입니까? 원본의 모든 구조와 내용을 유지하는 압축 된 양식을 XML로 사용하려는 차이점이 있다면 운이 좋지 않습니다. 문서를 논리적으로 동일하게 유지하면서 거의 제거 할 수있는 중복이 거의 없습니다. 형성된 XML.

의미 상 축소를위한 범위가 없습니까? 즉, 수신자가 관심이없는 부분을 제거 했습니까?

+0

아니요, 크기를 줄이고 싶지만 압축하지 않을 것이라고 말하고 있습니다. 즉, 그 파일을 축소하지만 여전히 같은 형식 (내 경우 XML에서와 같은)로 유지하고 Zip 파일로 압축 싶지 않아 의미합니다. 아니요, 미안하지만, 의미 축소를위한 범위가 없습니다. – NealGul