Versioning XML and Open Source Tools

23

description

Slides from my talk at XML Open Conference 2004.

Transcript of Versioning XML and Open Source Tools

Page 1: Versioning XML and Open Source Tools

������������ ������

�����������

������������ ��

�� �� �������������

Page 2: Versioning XML and Open Source Tools

� ���

� ���������� ���������������!�"#����������

� $!!����� �������������%���&

� ��'�������!� ������������

( �����������������

� ���� ��'��������))

Page 3: Versioning XML and Open Source Tools

�'*�������+��,��������!��

Sender ReceiverXML

Description

Page 4: Versioning XML and Open Source Tools

-���-�������!����������

Sender ReceiverXML

V1->V2

DescriptionV1->V2

DescriptionV1->V2

Page 5: Versioning XML and Open Source Tools

�������������$���!�����������

ProcessorV1

ProcessorV2

Backwards

Forwards

XMLV1

XMLV2

Page 6: Versioning XML and Open Source Tools

���������./����0 ��!1

2����3

24���5��3� ��264���5��3

2����5��3��� ���26����5��3

26����3

V1

2����3

24���5��3� ��264���5��3

<middleName>Sumner</middleName>2����5��3��� ���26����5��3

26����3

V2

Page 7: Versioning XML and Open Source Tools

5�����'�"#����������

2����3

24���5��3� ��264���5��3

<middleName>Sumner</middleName>2����5��3��� ���26����5��3

2��� �!�*789��8�*��*�78�:�8����

#����78*���;66 ) <)��6����6���8����

2&== ����*�� ==3

26���3

26����3

V2

V1 Description

<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs=“unbounded”/>

Page 8: Versioning XML and Open Source Tools

"#�����������4����������

2�����#����7.*���;66#����)'��6�>13

24���5��3� ��264���5��3

2����5��3��� ���26����5��32��!!�5�� #����7.*���;66#����)'��6��13?

2������������#����7.*���;66#����)'��6�<13�?

2*��*��#����7.*���;66#����)'��6��13�?

2� ���� #����7.*���;66#����)'��6�913�?

2*�� ���� #����7.*���;66#����)'��6�@13�?

2 ��*��#����7.*���;66#����)'��6�A13�?

26����3

V2

Page 9: Versioning XML and Open Source Tools

B*�����C��� %��

2����3

24���5��3� ��264���5��3

<lastName>Downey</lastName> �������������

26����3

V1

V2 default missing values

2����3

24���5��3� ��264���5��3

<lastName>Downey</lastName><nationality>UK</nationality>

26����3

V2

V1 ignore unknown values

Page 10: Versioning XML and Open Source Tools

%���'����

-�D�� ������������

2����3

24���5��3 � ��264���5��3

<lastName>Downey</lastName>2�����������3� �26�����������3

2E��3����� �26E��3

26����3

V2

V1 Description

<restriction base=‘xs:string’><enumeration value=‘CA’/><enumeration value=‘US’/>

</restriction>

V1 Description

<element name=“zip” type=“xs:int”/>

Page 11: Versioning XML and Open Source Tools

*�������������'�

-�D�� ������������

2����3

24���5��3 � ��264���5��3

<lastName>Downey</lastName>2�����'3� ! 26�����'3

26����3

V1

2����3

24���5��3 � ��264���5��3

<lastName>Downey</lastName>2�����'3� ! 26�����'3

26����3

V2

£

Page 12: Versioning XML and Open Source Tools

������'�����-�D����

������������=F ��5�����'�

V12�����"# ���$%&''�())�" # ���!���)������)*�+,

24���5��3� ��264���5��3

<lastName>Downey</lastName>26����3

V22�����"# ���$%&''�())�" # ���!���)������)*�+,

2���3

24���3� ��264���3

2����3��� ���26����3

26���3

26����3

Page 13: Versioning XML and Open Source Tools

2����3

24���5��3� ��264���5��3

<lastName>Downey</lastName>2������������# ��'� �����' ��7G'���+3� �26�����������3

26����3

������'�����-�D����

������������ = ����F�!����!

V2

actually what I’d really like is an xsi:mustUnderstandor an xml:mustUnderstand

Page 14: Versioning XML and Open Source Tools

$�H����0 ��*�����B����&

��������������������������������������

Page 15: Versioning XML and Open Source Tools

0 < ��'*��������������

� ����� ��!'�!�����������������

( ���������'���������!!�����!��4����I��'

� �*�����F�$���

( '��+�������#� ''��3>�������G���+

( '��+�����#�;��� ������G���+

( '��+���!!������� ''��7G�+ !�'�����4��#�;���

( �����������������=����?

Page 16: Versioning XML and Open Source Tools

����������'*���B�'D�

� ����������������

=�����!

� ���������'�#�����������4����������

( ���������&

� ��� �����������������!!�����!

= '�����!����'�����

Page 17: Versioning XML and Open Source Tools

0 < ��'*���>)>J

� ��������������!�!���

� � ���������������4������'�����

� ����� ����44�))������������4������*��

� F���D����������'D �!��'��������

( ������������������������������� !����"����������������#�����������$���������������%

Page 18: Versioning XML and Open Source Tools

5�������������'������B�'D�

� /���B*������+������!���B �'���*�!

� ���������*�������������

( �����F�$���!�!��������������K*��&L

( ������ &��� �*���������H��

� "#��!��'*���>)�����

'������'���G����'�����+J

Page 19: Versioning XML and Open Source Tools

����� �������C��!�����?

� #�����������*����� ��������

( ������� �����������������������J

( 0 �����)����*����';�G#��!�M��D�+

( %����4�'�����������'*���

� '�����'��������������� ���'*���

( ����������!�44+���

Page 20: Versioning XML and Open Source Tools

���������*�����C���

��������'����&

��'�������

� �������������4���������������������

� "����������0 < ��'*������))���'D�

� � �������������*��������

������D�������������� ��*�

'�����������

Page 21: Versioning XML and Open Source Tools

�& �-���.

B*�����!���!������!�'����'����4�;

*���;66 *��4���)'��6����6�N6�� �� ��

Page 22: Versioning XML and Open Source Tools

� ���!����!�#��������;

*���;66 *��4���)'��6����6�N6�� �� ��6

� 0 < �B$O �C�������!�H��!����������������;

*���;66 ) <)��6���>6���6�����)*���J���7>P�� ���������=�>

����� '*�!;

*���;66 )��'�4�'�����)'��6

*���;66 )#��)'��6���6�6���<6>�6�<6��������)*���

� Q��� O ����!;

*���;66�����!)��6B'*6#����������#��)*��

� ����!�-��;

*���;66!���!���)'��6

� 5��*�� �!��*�� G"���������� ����'��������F ������� ���'*��+ B$O ���������������,��������

*���;66�����) <)��6$'*���6�����'6 =���6����$��6���=��>�65%� ���������������)*���

� ���� ����R�;

*���;66 )#��)'��6���6�6����6�A6�>6!����)*���

� �'*���������'��'��K�� �=�"��6�%����)� ������L;

*���;66 )#4���)'��6-����'��'�/�����)*���

%4�'�

Page 23: Versioning XML and Open Source Tools

��'���

� ��������4�� ���������K>�AN=>9�:L�������D�� ��������O ��'��!����*� �4��4�H��'�'��!��O ��'��!�S�>9�<=�@�K>9��T�LS�� ������ ��!��AA�#�9<�'��K<��#����A6:���LS�� �� !� �����������

� �����!������)���4������������ ��������)�>N9�)�

� -������ ���������K>NAAL�

� � �'����'*��� K$��'��������H��';�>::A=>N@:L�����'�!��4�%���'���4��)/ )� )� )U )�K>N>NL

� �����# 8� ��H�������� �����'�8�'���

� "���� � �'*� �����������������

� � ���� ��*��������= "��� �!������� KL

� � ���������'��;�*���;66 )���4'����)'��6��=!��*6����=����6�#�'����)*���

� � �!�4�!�$!������������'�!�4��B*�����/ �����)'���(���)����KH������������LC�O �-��D��0 ��! �!

� ,44�5 ��*���D����������'�������4��*�� ����������!��������!��������4������� ������������������'������* ���������*!�4��$��'���$�������H�����>9��>NN:)�

� �������$�!��0 �*������D��'����4�� ���